2

所以,这是我的 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 与通用视图和url模板标签一起使用?还是让它与通用视图一起工作的正确方法?

谢谢。

4

3 回答 3

4

Django 中的模板系统只支持双引号,这就解释了你在使用单引号时遇到的语法错误。你需要做

{% url page_view slug="TermsAndConditions" %}

如果你省略引号, Django的东西你指的是一个名为TermsAndConditions.

于 2009-03-14T13:55:05.200 回答
4

解决方案是

<a href='{% url page_view slug="TermsAndConditions" %}'>Terms and Conditions</a>
于 2009-09-28T20:41:15.370 回答
0

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

{% url page_view slug=TermsAndConditions %}
于 2009-03-14T05:09:54.093 回答