我有dict
个包含图片的列表。密钥是id
中的journey
。现在,我想获取基于ID的图片列表,因此我写了一个过滤器:
@register.filter
def dict_value(dict, key):
return dict.get(key)
现在我要使用此过滤器,但是如何使用?这就是我所做的:
{% for journey in journeys %}
...
{% with imagelist={{ images|dictvalue:{{journey.id}} }} %}
{% if imagelist %}
<img class="card-img-top" data-src="" style="height: 225px; width: 100%; display: block;" src="{{imagelist.0.url}}" data-holder-rendered="true">
{% else %}
<img class="card-img-top" data-src="" style="height: 225px; width: 100%; display: block;" src="https://via.placeholder.com/348x225.png" data-holder-rendered="true">
{% endif %}
{% endwith %}
...
{% endfor %}
为了进行测试,如果列表不为空,我想显示第一张图像。
但是我对with-tag
有疑问。如何正确执行?
答案 0 :(得分:0)
在模板过滤器中,您不需要使用多余的双大括号,您可以将其写为:
{% with imagelist=images|dictvalue:journey.id %}
话虽这么说,在模板中实现业务逻辑通常不是一个好主意。通常在视图中执行此操作。