Django 在模板标签中使用变量

Django use a variable within a template tag

我在我的 Django 模板中使用静态模板标签:

{% load staticfiles %}
<img src="{% static "my_app/myexample.jpg" %}" alt="My image"/>

但是我需要使用的文件名是我的模型对象的 属性(即我将其作为上下文传递给此模板的 {{ SampleModel.0.propertyValue }},而不是 "my_app/myexample.jpg" . 但是我如何在静态模板标签中包含 {{ ... }} 呢?它会抛出一个错误。

有出路吗?

您可以在静态模板标签中使用变量。请注意,您不需要 {{}}

{% static SampleModel.0.propertyValue %} 

您可以在 Django 标签中使用上下文中的任何变量(自定义标签可能需要进行一些调整才能使用)。在你的情况下,这很好用:

{% static SampleModel.0.propertyValue %} 

这种用法也有效:

{% with my_computed_var=SampleModel.0.propertyValue %}
    {% static my_computed_var %} 
{% endwith %}

{% static some_var|customFilter %}

有关详细信息,请参阅 the documentation about custom tags,它也与 Django 默认标签相关。