2016-12-13 2 views
0

То, что я пытаюсь сделать, - это позволить другим, но очень похожим представлениям использовать один и тот же шаблон. Существует ссылка на URL, где единственное, что отличается от них, это вторая половина обратного вызова. Используя приведенный ниже пример, я получаю NoReverseMatch, что имеет смысл, если код ниже не принят.Django Template: использование двойной фигурной скобки в теге шаблона

{% url outer:{{suffix}} %}

Что такое правильный путь для достижения этой цели? или я приношу свою лаконичность и выписываю url?

Я использую Django 1.4

ответ

1

Вы можете использовать «с», чтобы построить URL, а затем передать его URL-адрес тег шаблона:

{% with 'outer:'|add:suffix as link_url %} 
    <a href="{% url link_url %}">link</a> 
{% endwith %} 

UPD: Для Джанго 1,4, чтобы сделать его работу, вы должны добавить {% load url from future %}, как это:

my_template.html:

{% load url from future %} 
{% url 'outer:'|add:suffix %} 

Если правильно напечатать свой адрес. Обратите внимание, что вы не должны суффиксы с надписью '', так как это переменная.

+0

Это не сработало. – af3ld

+0

Как именно это не сработало? Я имею в виду, что я получаю правильный URL-адрес, используя этот подход. Похоже, что подробностей вашего вопроса недостаточно для меня ( –

+0

Простите, что это было не очень точно. Когда я запускаю фрагмент как есть, я получаю 'NoReverseMatch', выделяя ссылку в' '. Когда я добавляю цитаты вокруг 'суффикса', как говорит Django для пользовательских тегов шаблонов, то же самое происходит. Я ценю помощь, какие другие знания были бы полезны? – af3ld

-3

Я предлагаю вам создать templatetag вместо этого. Таким образом вы сможете предоставить суффикс для templatetag.

** Попробуйте обернуть его в кавычки следующим образом: {% url "outer:{{suffix}}" %}.