2

在模板中,我有{% url "news.views.article" article=article.id %}where 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.
4

2 回答 2

4

尝试在视图定义周围不加引号。

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

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

于 2012-08-02T13:17:11.953 回答
0

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

{% load url from future %}

然后使用引号。

有关弃用的更多信息 - Django 1.3 发行说明

于 2012-08-02T13:10:15.943 回答