Django {%url%}给出了NoReverseMatch错误,而reverse()返回的url很好。为什么?

Django {%url%}给出了NoReverseMatch错误,而reverse()返回的url很好。为什么?,django,django-urls,django-registration,django-1.4,Django,Django Urls,Django Registration,Django 1.4,我不知道这是否与我将要描述的问题相同,但它确实具有相同的症状。不幸的是,在我写这篇文章时,它仍然没有得到解决 这就是我的问题。我想把詹姆斯·贝内特的加入我的django项目。我已经基本完成了根据我的需要配置它-自定义模板和URL。就在我觉得一切都很好的时候。我在django注册所需的一个自定义模板中使用了{%url'testing'item_id=123%}(我还尝试了使用视图名myapp.views.test,但没有成功),因此出现了NoReverseMatch错误。有趣的是,我在shell中

我不知道这是否与我将要描述的问题相同,但它确实具有相同的症状。不幸的是,在我写这篇文章时,它仍然没有得到解决

这就是我的问题。我想把詹姆斯·贝内特的加入我的django项目。我已经基本完成了根据我的需要配置它-自定义模板和URL。就在我觉得一切都很好的时候。我在django注册所需的一个自定义模板中使用了
{%url'testing'item_id=123%}
(我还尝试了使用视图名
myapp.views.test
,但没有成功),因此出现了
NoReverseMatch
错误。有趣的是,我在shell中尝试了
reverse('testing',kwargs={'item_id':123})
,url返回得很好。我以为
{%url%}
在后端使用
reverse()
,但为什么我得到了不同的结果

url.py:(我网站的URLconf)

我不知道这是否重要,但我想我应该提到激活\u email.txt存储在
myapp
的模板目录中,尽管它被
django registration
使用

此外,我正在使用django 1.4


我有一种感觉,这个问题与url名称空间有关,这是一个我从未理解过的主题,但这只是一个天真的猜测。(在我看来,django文档可以很好地解释django的所有内容,除了url名称空间)

我在这里不是专家,但在我目前正在进行的django项目中,我使用的url名称没有引号。我只是在我的一个模板中的类似行周围添加了引号,它产生了与您的错误相同的错误

尝试:


有意思~真管用!!谢谢。但这背后的理由是什么?我的意思是,django文档中的所有
{%url%}
示例都使用引号。请查看文档的命名url部分:据我所知,如果您使用的url标记具有指向视图的实际路径,那么您需要引号。如果使用名称,则不需要。谢谢您的参考。在template tags文档中,有一个示例
{%url'myapp:view name%}
,因此我认为使用view name需要qoutes。我想这只适用于我将视图名与名称空间一起使用时,这有点令人困惑。@ahmoo,他们在1.5中去掉了不带引号的url标记,您可以
{%loadurl from future%}
使用总是使用引号的新标记行为,当然,除非您传递的是一个解析为字符串的变量。@John-这是YujiTomita提到的信息的基础。它也应该放在官方文件的相关章节中。
urlpatterns = patterns('myapp.views',
    url(r'^test/(?P<item_id>\d+)/$', 'test', name='testing'),
)
{% comment %}Used to generate the body of the activation email.{% endcomment %}
Welcome to {{ site }}! Please activate your account by clicking on the following link:

{% url 'testing' item_id=123 %}

Note the activation link/code will be expired in {{ expiration_days }} days.
{% url testing item_id=123 %}