我有一个包含图像的列表的dict
。密钥是journey
的id
。现在我想得到一个基于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
有问题。如何正确操作?
在模板过滤器中,您不需要使用额外的双花括号,您可以将其写成:
{% with imagelist=images|dictvalue:journey.id%}
也就是说,在模板中实现业务逻辑通常不是一个好主意。通常在视图中执行此操作。