当URL存在时,使用Django的NoReverseMatch

时间:2012-08-02 13:05:32

标签: python django url exception

在模板中,我有{% url "news.views.article" article=article.id %},其中article.id是当前显示的文章的ID。我的urls.py包含这个:

url(r'^news/$', 'news.views.index'),
url(r'^news/article/(?P<article>\d{1,4})/$', 'news.views.article'),

但是,当我加载包含上述模板标签的页面时,我得到了这个:

NoReverseMatch at /news/
Reverse for '"news.views.article"' with arguments '()' and keyword arguments '{'article': 2}' not found.

2 个答案:

答案 0 :(得分:4)

在视图定义周围没有引号的情况下尝试。

 {% url news.views.article article=article.id %}

您已经定义了视图名称,因此这应该通过按名称调用函数来实现。

答案 1 :(得分:0)

视图名称周围带引号的语法仅适用于Django 1.5。由于您可能使用的是旧版本,因此应删除引号,或添加模板:

{% load url from future %}

然后使用引号。

有关弃用的更多信息 - Django 1.3 release notes