404在一个简单的模板视图 - 奇怪

时间:2013-08-02 18:24:45

标签: django django-templates django-urls

我有一个由ListViews,TemplateViews等组成的django应用程序。 所以,我只是添加了一个小模板视图:

#views.py
class TermsTemplateView(TemplateView):
    template_name = "terms.html"

#urls.py
url(r'^terms/$', TermsTemplateView.as_view(), name='terms'),

并且在terms.html中,我用于链接:

<a href="{% url 'terms' %}">Terms & Conditions</a>

由于某些奇怪的原因,我在localhost /条款上持续获得404,如下所示:

404: No <model_name> found matching the query

我很困惑为什么会突然发生这种情况。我为"about", "thanks", "contact"页设置了相同的设置,它们似乎没有问题地显示它。

..最糟糕的是,如果我像这样修改urls.py:

url(r'^/terms/$', TermsTemplateView.as_view(), name='terms'),

然后转到http://127.0.0.1:8000//terms/ - 页面似乎在那里..我很惊讶为什么会这样:(

任何帮助都会启发我!

1 个答案:

答案 0 :(得分:1)

最后/是你问题的罪魁祸首。 localhost/terms'^terms/$'正则表达式localhost/terms/不符。

您可以使用/

在结尾选择?
url(r'^terms/?$', TermsTemplateView.as_view(), name='terms'),

UPD:请注意,问题有一个更好的解决方案,APPEND_SLASH

  

设置为True时,如果请求URL与任何一个都不匹配   URLconf中的模式并不以斜杠(HTTP)结尾   重定向发送到相同的URL并附加斜杠。

另见: