如何将django.core.urlresolvers.reverse与函数引用而不是命名的URL模式一起使用?

Pau*_*ite 8 python django

在我的urls.py档案中,我有:

from myapp import views
...
(r'^categories/$', views.categories)
Run Code Online (Sandbox Code Playgroud)

categories里面的视图功能在哪里myapp/views.py.没有其他URLconf行引用views.categories.

在单元测试文件中,我试图使用django.core.urlresolvers.reverse()而不是仅仅复制'/ categories /'(DRY和所有这些)来获取此URL .所以我有:

from django.core.urlresolvers import reverse
from myapp import views
...

url = reverse(views.categories)
Run Code Online (Sandbox Code Playgroud)

当我运行我的测试时,我收到一个NoReverseMatch错误:

NoReverseMatch: Reverse for '<function categories at 0x1082f30>' with arguments '()' and keyword arguments '{}' not found.
Run Code Online (Sandbox Code Playgroud)

如果我将URL模式设为命名模式,它就匹配得很好,如下所示:

url(r'^categories/$', views.categories, 'myapp-categories')
Run Code Online (Sandbox Code Playgroud)

并使用模式名称来匹配它:

url = reverse('myapp-categories')
Run Code Online (Sandbox Code Playgroud)

但据我可以从告诉reverse文档,我不应该需要做它只是使用了一个名为URL模式reverse.

我有什么想法我做错了吗?

Pau*_*ite 2

经过进一步调查,发现这是我导入视图模块的方式存在问题:

\n\n

如何成功地将函数引用传递给 Django\xe2\x80\x99s reverse() 函数?

\n\n

不过,谢谢你们的帮助,伙计们:你们激励我正确地看待它。

\n