【发布时间】:2011-07-06 16:34:45
【问题描述】:
我正在尝试这样使用 url 模板标签:
{% url all-labs-map %}
但是当我查看页面时,我得到了这个错误:
Caught NoReverseMatch while rendering: Reverse for 'all-labs-map' with arguments '()' and keyword arguments '{}' not found.
当我像这样使用模板标签时:
{% url gmaps.views.all_labs %}
它工作得很好。
这是网址配置:
urlpatterns = patterns('gmaps.views',
url(r'^lab_list/$', 'all_labs', name="all-labs-map" ),
)
我尝试使用 django shell 来查看命名 URL 是否有问题,但是使用
reverse('all-labs-map')
返回正确的 URL。
对正在发生的事情有任何想法吗?
谢谢!
马吉德
编辑:
我在 ubuntu 上使用 django 1.2 和 nginx 服务器、gunicorn 和 virtualenv。我在加载库的自定义标签上遇到了另一个问题,但是即使我使用了正确的标签注册语法,也无法识别标签本身。任何想法将不胜感激!
【问题讨论】:
-
看起来你做的一切都是正确的并且有一个谜。想清楚后请更新。
-
我唯一能想到的是,您在对 urls.py 等进行更改后是否重新启动了 nginx 服务?根据经验,您应该在更改任何 .py 文件后重新启动服务 - 不这样做会导致 reverse() 和 {% url %} 间歇性地工作而不工作
-
@skyl 是对的,
URLNode最终会调用reverse('all-labs-map', (), {}, contex.current_app),这对你有用,所以它肯定是别的东西。 -
只是为了确保,我确实重新启动了 nginx,但问题仍然存在。
-
知道这里发生了什么吗?
标签: django django-urls