Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 18, 2012 03:08:34

SergeyMiracle
Зарегистрирован: 2012-10-11
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

() takes exactly 2 arguments (1 given)

Здрасте
Подскажите, что я делаю не так получая такую ошибку productsfull() takes exactly 2 arguments (1 given)
Вьюха:

def productsfull(request, product_id):
	products = Product.objects.get(pk=product_id)
	photos = products.album.photos.all()
	c = RequestContext(request, {
		'products': products,
		'photos': photos,
		
		})
URL -
url(r'^products/[^\s]+/$', productsfull),

Отредактировано SergeyMiracle (Окт. 18, 2012 03:21:00)

Офлайн

#2 Окт. 18, 2012 03:28:29

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

() takes exactly 2 arguments (1 given)

Ошибка видимо в регулярке - вьюха принимает помимо request еще аргумент, который должен быть результатом выборки регулярки.
Помимо этого у вас сама регулярка неверна. Я пошаманю и предположу что URL у вас имеется вида “/products/15/”, тогда фрагмент регулярки “/+/” не верен. Если предполагать что у вас product_id это цифровые значения, то должно быть r'/products/(\d+)/$'
Если не прав - поправьте



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Окт. 18, 2012 05:14:24

SergeyMiracle
Зарегистрирован: 2012-10-11
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

() takes exactly 2 arguments (1 given)

Да тут и крылась моя ошибка, спасибо, у меня похоже уже соображалка отключилась
Ну идея урла с цифрами мне не понравилась переписал

def productsfull(request, slug):
	products = Product.objects.get(slug=slug)
и pattern на
url(r'^products/(?P<slug>[^\s]+)/$', productsfull),
и все заработало

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version