Джанго по имени URL, общие взгляды? - PullRequest
2 голосов
/ 14 марта 2009

Итак, вот один из моих 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, подобным этому? Или правильный способ заставить его работать с общими представлениями?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 14 марта 2009

Система шаблонов в Django поддерживает только двойные кавычки, что объясняет синтаксическую ошибку, возникающую при использовании одинарных кавычек. Вам нужно будет сделать

{% url page_view slug="TermsAndConditions" %}

Если вы опустите кавычки, Django указывает на переменную с именем TermsAndConditions.

4 голосов
/ 29 сентября 2009

Решение

<a href='{% url page_view slug="TermsAndConditions" %}'>Terms and Conditions</a>
0 голосов
/ 14 марта 2009

Не ставьте кавычки вокруг строки "TermsAndConditions":

{% url page_view slug=TermsAndConditions %}
...