如何在Django的图像列表中查找第一张图像

时间:2018-10-22 15:02:41

标签: html django

我有一个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>&lt;</p>
            </div>
        </span>
    </div>
    <div class="swipe-wrap-rig">
        <span class="move" >
            <div class="swipe-next">
                <p>&gt;</p>
            </div>
        </span>
    </div>
</div>

</span> 

代码工作正常,除了我想找到第一个图像并将其放在不同的img标签中,它将使用class =“ active”。此类在javascript代码中用于向左或向右滑动所有图像。我尝试使用{%if image.car_images.0%}和{%if image.car_images.first%}来查找第一个图像,但未成功。我得到的是所有没有活动类别的图像。任何帮助或建议。

1 个答案:

答案 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>