在我的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.
我有什么想法我做错了吗?
经过进一步调查,发现这是我导入视图模块的方式存在问题:
\n\n如何成功地将函数引用传递给 Django\xe2\x80\x99s reverse() 函数?
\n\n不过,谢谢你们的帮助,伙计们:你们激励我正确地看待它。
\n| 归档时间: |
|
| 查看次数: |
16294 次 |
| 最近记录: |