我不知道这个SO question是否与我要描述的问题相同,但它确实有相同的症状。不幸的是,在我写作时,它仍然没有得到解决。
所以这是我的问题。我想把James Bennett的django-registration app添加到我的django项目中。我已经完成了根据我的需求配置它 - 自定义模板和网址。就在我认为一切都很好的时候。我在使用NoReverseMatch
时遇到了{% url 'testing' item_id=123 %}
错误(我也尝试使用视图名称myapp.views.test
,而不是运气)在django-registration所需的一个自定义模板中。有趣的是,我在shell中尝试了reverse('testing', kwargs={'item_id':123})
,并且返回的网址很好。我认为{% url %}
在后端使用reverse()
,但为什么我会得到不同的结果?
urls.py: (我网站的网址)
urlpatterns = patterns('myapp.views',
url(r'^test/(?P<item_id>\d+)/$', 'test', name='testing'),
)
activation_email.txt:(上述模板。请注意django-registration要求的 .txt 扩展中的故意,这不应该是导致问题的原因。)
{% 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.
我不知道这是否重要但只是认为我应该提及 activation_email.txt 存储在myapp
的 templates 目录中,尽管它已被使用按django-registration
。
另外,我正在使用django 1.4
我有一种感觉,这个问题与url名称空间有关,这是一个我从未理解过的话题,但这只是一个天真的猜测。 (IMO,django文档非常适合解释有关django的所有内容,除非涉及到url名称空间)
答案 0 :(得分:12)
我不是这里的专家,但在我正在研究的Django项目中,我正在使用没有引号的url名称。我只是在我的一个模板中的类似行周围添加了引号,它产生了与错误相同的错误。
尝试:
{% url testing item_id=123 %}