【问题标题】:Tag inside tag in django templatedjango模板中的标签内标签
【发布时间】:2014-07-25 00:24:25
【问题描述】:

我正在尝试执行以下操作:

{% include "default_form.html" with action="{% url 'settings' var1 var2 %}" %}

但似乎不支持,因为我收到以下错误:

Could not parse the remainder: '"{%' from '"{%'

有什么方法可以在模板中实现这一点,还是我需要在我的视图中定义action

【问题讨论】:

    标签: python django django-templates


    【解决方案1】:

    你不能这样做:

    {% 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 %}

    但是随后您会意识到将带有 vars 的 url 值分配给变量还有其他问题。

    如果您尝试将 action="{% url 'settings' var1 var2 %}" %} 添加到表单中,我强烈建议您执行以下操作:

    <form action="{% url 'settings' var1 var2 %}">
        {% include "default_form.html" %}
    </form>
    

    在这部分我想说的是,在模板中拥有表单声明以及在子模板中拥有表单内的值会容易得多,因为这样做太难了你想做什么

    【讨论】:

      【解决方案2】:

      最简单的解决方案是:

      {% url 'settings' var1 var2 as action_url %}
      
      {% include "default_form.html" with action=action_url %}
      

      【讨论】:

      • 太完美了!简单有效。谢谢。
      • 完美!比你。
      猜你喜欢
      • 2014-04-03
      • 1970-01-01
      • 2011-10-07
      • 2014-03-20
      • 2011-02-09
      • 2021-02-18
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      相关资源
      最近更新 更多