Django命名网址,通用视图?

时间:2009-03-14 04:53:17

标签: django django-templates django-urls

所以,这是我的一个urls.py

urlpatterns = patterns('items.views',
    url(r'^(?P<item_id>[\d+])/$', 'view_listing', name="item_view"),
)

在我的模板中,我可以执行此操作:<a href="{% url item_view 1 %}">here</a>我将获得指向正确页面的链接。一切都很棒!

但是,这是另一个

urlpatterns = patterns('django.views.generic.list_detail',
    (r'^(?P<slug>[\w-]+)/$', 'object_detail', dict(page_info, slug_field='slug'), "page_view"),
)

但是在我的模板中,如果我尝试这个:<a href="{% url page_view slug='TermsAndConditions' %}">Terms and Conditions</a>或此<a href="{% url page_view 'TermsAndConditions' %}">Terms and Conditions</a>,则会出现此错误:

TemplateSyntaxError at /

Could not parse the remainder: ''TermsAndConditions '' from ''TermsAndConditions ''

有没有人知道是否可以使用带有通用视图的命名网址和url这样的模板标记?或者使用通用视图的正确方法?

感谢。

3 个答案:

答案 0 :(得分:4)

Django中的模板系统仅支持双引号,这解释了使用单引号时出现的语法错误。你需要做

{% url page_view slug="TermsAndConditions" %}

如果省略引号,Django指的是名为TermsAndConditions变量

答案 1 :(得分:4)

解决方案是

<a href='{% url page_view slug="TermsAndConditions" %}'>Terms and Conditions</a>

答案 2 :(得分:0)

不要在字符串“TermsAndConditions”周围加上引号:

{% url page_view slug=TermsAndConditions %}