如果在我的Django模板中声明...有更好的方法吗?

时间:2017-09-27 12:53:31

标签: django django-templates

在我的Django模板中:我只是在传递给模板的数据长度为3时,试图在我的for循环中添加一个额外的div。这就是我现在正在尝试的但是似乎有可能比做两个if语句更好的方法来检查长度:

  {% if items|length == 3 %}
    <div class='three-item-wrap'>
  {% endif %}

      {% for item in items %}
        .......
      {% endfor %}

  {% if items|length == 3 %}
    </div> //close .three-item-wrap
  {% endif %}

2 个答案:

答案 0 :(得分:1)

我认为更好的方法是进行单个if语句检查。就像这样:

{% if items|length == 3 %}
  <div class='three-item-wrap'>
    {% for item in items %}
       .......
    {% endfor %}
  </div> 
{% else %}
  {% for item in items %}
    .......
  {% endfor %}
{% endif %}


这种方式更好,因为Django渲染引擎首先检查if语句,然后进行for循环。
如果您的代码出现问题,div将无法关闭代码</div>。在我的代码中,没有选项可以让div没有关闭代码。

答案 1 :(得分:0)

你可以尝试那样

{% if items|length == 3 %}
    <div class='three-item-wrap'>


      {% for item in items %}
        .......
      {% endfor %}
    </div>
  {% else %}
    #another logic goes here
  {% endif %}

如果您想了解更多信息,请参阅文档django if tempalate