gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 21:09:12 25 4
gpt4 key购买 nike

在我的 urls.py 文件中,我有:

from myapp import views
...
(r'^categories/$', views.categories)

其中 categoriesmyapp/views.py 中的 View 函数。没有其他 URLconf 行引用 views.categories

在单元测试文件中,我尝试使用 django.core.urlresolvers.reverse() 获取此 URL,而不是仅仅复制“/categories/”(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')

但据我所知 the reverse documentation ,我不需要为了使用 reverse 而将其设为命名 URL 模式。

知道我做错了什么吗?

最佳答案

Jack M. 的例子几乎是正确的。

如果你想使用命名 url,它需要是一个 url 函数,而不是一个元组。

url(r'^no_monkeys/$', 'views.noMonkeys', {}, "no-monkeys"),

关于python - 如何将 django.core.urlresolvers.reverse 与函数引用而不是命名的 URL 模式一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/134629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com