带有标记自定义筛选器的django模板

带有标记自定义筛选器的django模板,django,django-templates,Django,Django Templates,我有一个包含图像的列表。钥匙是旅程的id。现在我想根据id获取图像列表,因此我编写了一个过滤器: @register.filter def dict_value(dict, key): return dict.get(key) 现在我想使用这个过滤器,但如何使用?这就是我所做的: {% for journey in journeys %} ... {% with imagelist={{ images|dictvalue:{{journey.id}} }} %}

我有一个包含图像的列表。钥匙是
旅程的
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 imagelist={{images | dictvalue:{{{travely.id}}}}%}
{%if imagelist%}
{%else%}
{%endif%}
{%endwith%}
...
{%endfor%}
对于测试,如果列表不是空的,我想显示第一个图像


但是我对标签的
有一个问题。如何正确操作?

在模板过滤器中,您不需要使用额外的双花括号,您可以这样写:

{% with imagelist=images|dictvalue:journey.id %}
{%with imagelist=images | dictvalue:travely.id%}

也就是说,在模板中实现业务逻辑通常不是一个好主意。通常在视图中执行此操作。

在模板过滤器中,您不需要使用额外的双花括号,您可以这样写:

{% with imagelist=images|dictvalue:journey.id %}
{%with imagelist=images | dictvalue:travely.id%}
也就是说,在模板中实现业务逻辑通常不是一个好主意。通常在视图中执行此操作