【问题标题】:ListView with alternate background image具有备用背景图像的 ListView
【发布时间】:2018-01-30 19:51:39
【问题描述】:

此代码不起作用!我想显示红色图像,然后显示蓝色图像。如果我有 5 个对象,则列表应该是:红蓝红蓝红。

我想用 2 种颜色来做这个。我尝试了以下代码:

 {% extends './base.html' %}
 {% block content %}
 {% for object in object_list %}

 {% if forloop.counter0 % 2 ==0 }

 <img src="img/red.jpg">
 <p> {{object.title}} </p>

 {% else %}
 <img src="img/blue.jpg">
 <p> {{object.title}} </p>


 {% endif %}


{% endfor %}
{% endblock content %}

【问题讨论】:

  • Modulus % in Django template 问题类似,但 Davide 案例的最佳答案是使用循环标签(目前有 10 个赞成票),而不是公认的使用答案divisibleby(目前有 141 票)。

标签: django


【解决方案1】:

您不能在模板中使用%。 Django 有一个可以使用的divisibleby 过滤器。

不过,最好使用cycle标签:

{% for object in object_list %}
    <img src="{% cycle 'image/red.jpg' 'image/blue.jpg' %}">
    <p>{{object.title}}</p>
{% endfor %}

【讨论】:

    【解决方案2】:

    Django 模板没有模数%,它们使用divisibleby:2

    所以你的代码应该是这样的:

    {% if forloop.counter0|divisibleby:2 %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-05
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      相关资源
      最近更新 更多