2017-08-22 61 views
0

此代碼不起作用!我想顯示一個紅色的圖像,然後顯示一個藍色的圖像。如果我有5個對象,列表應該是:紅色藍色紅色藍色紅色。帶備用背景圖像的ListView

我想用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 %} 
+1

[Modulus%in Django template]可能重複(https://stackoverflow.com/questions/8494209/modulus-in-django-template) –

+0

* Modulus%in Django模板*問題是相似的,但Davide最好的答案是使用循環標籤(目前有10個upvotes),而不是使用divisibleby的接受答案(目前有141個upvotes)。 – Alasdair

回答

5

你不能在模板中使用%。 Django有一個您可以使用的divisibleby篩選器。

然而,這將是最好使用cycle標籤:

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

Django模板沒有模%,他們使用divisibleby:2

所以,你的代碼會是這個:

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