Тег внутри тега в шаблоне django
Я пытаюсь сделать что-то вроде следующего:
{% include "default_form.html" with action="{% url 'settings' var1 var2 %}" %}
но он, похоже, не поддерживается, так как я получаю следующую ошибку:
Could not parse the remainder: '"{%' from '"{%'
есть ли способ достичь этого в шаблоне или мне нужно определить action
на мой взгляд?
2 ответов
самым простым решением будет:
{% url 'settings' var1 var2 as action_url %}
{% include "default_form.html" with action=action_url %}
вы не можете сделать это:
{% include "default_form.html" with action="{% url 'settings' var1 var2 %}" %}
вы можете использовать только один раз {% ... %}
а затем внутри этого вы можете использовать теги, переменные и т. д... например, если у вас есть внутри переменной с именем url_with_vars вы должны сделать это:
{% url 'settings' var1 var2 as url_with_vars %}
{% include "default_form.html" with action=url_with_vars %}
совет: внутри {% .... %}
вы можете вызвать переменную django без использования {{..}}
означает, что в шаблоне для отображения переменной django вы используете {{variable}}
, а внутри {% whatever_action ... %}
вы не делать как {% whatever_action {{variable}} %}
правильно будет {% whatever_action variable %}
но тогда вы поймете, что есть другие проблемы, чтобы назначить это значение url с vars переменной.
если вы пытаетесь добавить action="{% url 'settings' var1 var2 %}" %}
в форме, я настоятельно рекомендую вам сделать что-то вроде:
<form action="{% url 'settings' var1 var2 %}">
{% include "default_form.html" %}
</form>
что я пытаюсь сказать в этой части, так это то, что вам будет намного проще иметь объявление формы в шаблоне и значения внутри формы в подзадаче, потому что это будет слишком трудно сделать то, что вы пытаетесь сделать