我有一个Django模板渲染结果和用于搜索汽车的图像。如下:
{% for item in result %}
<li class="result-row">
<!-- image box -->
<span>
<a href="#" class="result-image-act" >
{% for image in item.images_cars_set.all %}
{% if image.car_images_exists %}
{% if image.car_images.0 %}
<img class="active" src=" {{image.car_images.url}}">
{% endif %}
{% if not image.car_images.0 %}
<img src=" {{image.car_images.url}}">
{% endif%}
{% endif %}
{% empty %}
<img src="{% static 'path/to/default image' %}" class="active">
{% endfor %}
</a>
<span class="embed-result-price">{{item.price}}</span>
<div class="swipe-wrap">
<div class="swipe-wrap-lef">
<span class="move" >
<div class="swipe-prev">
<p><</p>
</div>
</span>
</div>
<div class="swipe-wrap-rig">
<span class="move" >
<div class="swipe-next">
<p>></p>
</div>
</span>
</div>
</div>
</span>
代码工作正常,除了我想找到第一个图像并将其放在不同的img标签中,它将使用class =“ active”。此类在javascript代码中用于向左或向右滑动所有图像。我尝试使用{%if image.car_images.0%}和{%if image.car_images.first%}来查找第一个图像,但未成功。我得到的是所有没有活动类别的图像。任何帮助或建议。
答案 0 :(得分:1)
您可以使用{% if forloop.counter0 == 0 %} do something {% endif %}
或
{% if forloop.counter == 1 %} do something {% endif %}
在使用{% for %}
模板标记进行迭代时为第一项做些事情。
更多信息:https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#for
因此您的代码应类似于
<a href="#" class="result-image-act" >
{% for image in item.images_cars_set.all %}
{% if forloop.counter == 1 %}
<img class="active" src=" {{image.car_images.url}}">
{% else %}
<img src=" {{image.car_images.url}}">
{% endif %}
{% empty %}
<img src="{% static 'path/to/default image' %}" class="active">
{% endfor %}
</a>