2009-03-14 2 views
2

Итак, вот один из моих urls.pyDjango с именем urls, общий вид?

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

Решение

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

Кто бы мог подумать, что такое простое решение, как изменение типов котировок, будет исправить. Я даже не работаю над сайтом, но в любом случае я сделал быстрый тест, и он сработал. Благодарю. – TehOne

0

Не в кавычки строки «TermsAndConditions»:

{% url page_view slug=TermsAndConditions %} 
+0

Это дает мне другую ошибку прямо сейчас. TemplateSyntaxError at/ Попал в исключение при рендеринге: Обратный для 'listitstolen.page_view' с аргументами '()' и аргументами ключевого слова '{' slug ':' '}' не найден. – TehOne

+0

Извините, сделайте это с двойными кавычками. Я думал, что это переменная, которую вы пытались использовать. –

+0

Я тоже пробовал это раньше, и он тоже не работает. Я получаю эту ошибку: TemplateSyntaxError at/ Попадание в рендеринг: исключение для 'listitstolen.page_view' с аргументами '()' и аргументами ключевого слова '{' slug ': u'TermsAndConditions'} 'не найдено. – TehOne

4

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

{% url page_view slug="TermsAndConditions" %} 

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

+0

Я тоже пробовал это раньше, и он тоже не работает. Я получаю эту ошибку: TemplateSyntaxError at/ Попадание в рендеринг: исключение для 'listitstolen.page_view' с аргументами '()' и аргументами ключевого слова '{' slug ': u'TermsAndConditions'} 'не найдено. – TehOne

+1

Странно. Это работает для меня - я помещал URLconf для page_view в пустой проект и пробовал код шаблона в оболочке - обратное работало. Попробуйте использовать url() в URLconf (хотя, я думаю, это не имеет значения ...) и попробуйте также позиционную версию: {% url page_view «Условия использования»%} –

+0

Все еще не работает. Не уверен, как это сработало для вас, а не для меня, но в программировании это не первый раз. Интересно, что отличается от реализации. U смог заставить его работать, используя общий подробный вид? Вот мой код http://dpaste.com/hold/15428/ – TehOne