Django Reverse с аргументами '() 'и ключевыми словами' {} ' не найден
Привет у меня есть проблема бешенство.
у меня есть шаблон url вроде этого:
# mproject/myapp.urls.py
url(r'^project/(?P<project_id>d+)/$','user_profile.views.EditProject',name='edit_project'),
он отлично работает в браузере, но для тестирования, когда я делаю это в раковину:
from django.test import Client
from django.core.urlresolvers import reverse
client= Client()
response = client.get(reverse('edit_project'), project_id=4)
Я получаю страшное:
NoReverseMatch: Reverse for 'edit_project' with arguments '()' and keyword arguments '{}' not found.
чего мне здесь не хватает?
3 ответов:
необходимо указать
project_id:reverse('edit_project', kwargs={'project_id':4})Doc здесь
эти проблемы дали мне большую головную боль, когда я попытался использовать обратный для создания ссылки активации и отправить его по электронной почте, конечно. Так что я думаю от tests.py это будет то же самое. Правильный способ сделать это заключается в следующем:
from django.test import Client from django.core.urlresolvers import reverse #app name - name of the app where the url is defined client= Client() response = client.get(reverse('app_name:edit_project', project_id=4))
Comments