我阅读了Django docs中的if else语句 但我不明白我的情况。 我有照片列表,如果要覆盖,我要渲染图像,否则我要渲染静态图像。 这是我的代码
{% for x in listing.photos.all %}
{% if x.photo_tipo == 'COVER' %}
<img src="{{ x.get_thumb }}" alt="">
{% else %}
<img src="{% static 'images/about/1.jpg' %}" alt="">
{% endif %}
{% endfor %}
结果是:x.photo =='COVER'的图像和列表中每张其他照片的静态图像。 如果声明为true,我只想得到一个结果;如果声明为false,我只想得到一个静态图像
答案 0 :(得分:2)
请勿在模板中执行此操作。在某个地方添加一些逻辑,可以直接为您提供具有该类型的照片(如果存在)。一个好方法是使用Listing模型上的方法:
class Listing(models.Model):
...
def cover_photo(self):
return self.photos.filter(photo_tipo='COVER').first()
现在您的模板可以是:
{% with photo as listing.cover_photo %}
{% if photo %}
<img src="{{ photo.get_thumb }}" alt="">
{% else %}
<img src="{% static 'images/about/1.jpg' %}" alt="">
{% endif %}
{% endwith %}