В моем файле urls.py
есть:
from myapp import views
...
(r'^categories/$', views.categories)
Где categories
- функция просмотра внутри myapp/views.py
. Нет ссылок на другие строки URLconf views.categories
.
В файле модульного теста я пытаюсь захватить этот URL-адрес, используя django.core.urlresolvers.reverse()
, вместо того, чтобы просто копировать «/ category /» (DRY и все такое). Итак, у меня есть:
from django.core.urlresolvers import reverse
from myapp import views
...
url = reverse(views.categories)
Когда я запускаю свои тесты, я получаю ошибку NoReverseMatch
:
NoReverseMatch: Reverse for '<function categories at 0x1082f30>' with arguments '()' and keyword arguments '{}' not found.
Это очень хорошо подходит, если я сделаю шаблон URL именованным шаблоном, например:
url(r'^categories/$', views.categories, 'myapp-categories')
И используйте имя шаблона, чтобы соответствовать ему:
url = reverse('myapp-categories')
Но, насколько я могу судить по документации reverse
, мне не нужно указывать шаблон URL, чтобы использовать reverse
.
Есть идеи, что я делаю не так?