2013-04-02 3 views
1

У меня есть шаблон comment_form.html, который используется в нескольких местах в моем приложении, и я хотел бы иметь возможность передавать URL-адрес конечной точки в этот шаблон из родительский шаблон. Обычно я хотел бы сделать это с помощью with тег:Использование шаблона шаблона Django «с» с результатом другого тега шаблона

{% with endpoint='/comments' %} 
    {% include 'comment_form.html' %} 
{% endwith %} 

Проблема заключается в том, что я не могу использовать строковый литерал '/comments' здесь, но вместо этого мне нужен URL-адрес метки, например, так: {% url 'blog:comments:comments' username=post.user.username object_id=post.id %}. Тег шаблона with, похоже, ожидает буквальную или контекстную переменную и, похоже, не может понять «использовать результат другого тега шаблона».

Одним из решений было бы передать блог струн: комментарии: комментарии, post.user.username, post.id все отдельно. Но это проблема, потому что для различного использования формы комментария могут потребоваться разные аргументы для однозначного определения конечной точки.

Как я могу использовать with с результатом другого тега шаблона?

ответ

3

Вы не можете, но вам это не нужно. Тег url имеет альтернативный синтаксис, который вводит результат в контекст:

{% url 'blog:comments:comments' username=post.user.username object_id=post.id as endpoint %} 
+0

Это замечательно! Я расчесывал документы для 'with' и подобных тегов, но я никогда не думал, чтобы действительно смотреть на тег' url'. Большое спасибо. –

Смежные вопросы