我最终做的只是将路径与名称本身分开。这些图像代表选项卡,是静态的并且是按顺序排列的。它们没有以图像方式连接到数据库。
我不想为每次运行重复 html,所以我最终做了一个这样的 forloop,有点简化。
{% for option in options_obj %}
<img class="highlight" src="{% static "store/img/editor/tab-" %}
{{ option.name.lower }}-selected.png">
{% endfor %}
编辑:尽管这在大多数情况下确实有效,但它也确实会搞砸事情。对我来说,当有不同的图像用于不同的语言设置并且同时使用像 CachedStaticFilesStorage 这样的工具时,就会发生这种情况。如果您需要在图像中添加语言代码或其他内容,这是一个更可靠的解决方案
{% for option in options_obj %}
<img class="highlight" src="{% static "store/img/editor/tab-"
|add:LANGUAGE_CODE|add:"-selected.png" %}">
{% endfor %}