我正在尝试执行以下操作:
{% include "default_form.html" with action="{% url 'settings' var1 var2 %}" %}
但它似乎不受支持,因为我收到以下错误:
Could not parse the remainder: '"{%' from '"{%'
有没有办法在模板中实现这一点,还是我需要在视图中定义action
?
答案 0 :(得分:17)
最简单的解决方案是:
{% url 'settings' var1 var2 as action_url %}
{% include "default_form.html" with action=action_url %}
答案 1 :(得分:5)
你不能这样做:
{% 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 %}
但是你会意识到将var的url值赋给变量还有其他问题。
如果您尝试在表单中添加action="{% url 'settings' var1 var2 %}" %}
,我强烈建议您执行以下操作:
<form action="{% url 'settings' var1 var2 %}">
{% include "default_form.html" %}
</form>
我在这部分中想说的是,在模板中使用表单声明以及子模板中表单内的值会更容易,因为它太难了做你想做的事