Django: передача нескольких аргументов в обратной функции HttpResponseRedirect - PullRequest
2 голосов
/ 31 марта 2011

Я пытаюсь передать несколько аргументов в обратной функции django HttpResponseRedirect, но я получаю эту ошибку

Реверс для 'DemoVar.views.success' с аргументами '()' и ключевыми словами-аргументами '{' company ': u'Company', 'sid': 47606734} 'не найден.

 #Calling function
 return HttpResponseRedirect(reverse('DemoVar.views.success',kwargs={'sid':int(ph), 'company':company}))

 #Function definition
 def success(request, sid, company):

 #urls.py
 url(r'^success/(?P<sid>[\d]+)/(?P<company>[\w\d-]+)/$','success', name='DemoVar_success'),

Я попытался передать 'args' в обратной функции, но с похожей ошибкой. Пожалуйста помоги.

Обновление: попытался передать аргументы как кортеж. Выход остается тем же.

 return HttpResponseRedirect(reverse('DemoVar.views.success',args=(ph, company,)))

 #Error 
 Reverse for 'DemoVar.views.success' with arguments '(47606734, 'Dummy Company')' and keyword arguments '{}' not found.    

Ответы [ 2 ]

1 голос
/ 01 апреля 2011

Мое регулярное выражение в urls.py для соответствующей функции url неверно. По-видимому, Django смотрит на urls.py, чтобы выяснить тип входных данных для функции представления, которая в моем случае была «DemoVar.views.success». Поскольку регулярное выражение URL не учитывает пробелы, django выдал ошибку. Я изменил на регулярное выражение для размещения ввода, содержащего пробелы.

 url(r'^success/(?P<sid>[\d]+)/(?P<company>[\s\w\d-]+)/$','success', name='DemoVar_success'),
0 голосов
/ 31 марта 2011

Ваш URL имеет имя DemoVar_success, а не DemoVar.views.success.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...