我正在尝试设置一个过滤器,它接受一个字符串值并返回一个图像元素,但我不能让它返回绝对值,只是通过硬编码url来返回相对值。
我想使用类似的东西:
return '<img src="{% static 'img/flags/country_flag.jpg'>"
这是我的代码:
@register.filter(name="flag")
def flag(language):
if language == 'fr':
return '<img src="static/img/flags/french.jpg" class="flag">'
elif language == 'ge':
return '<img src="static/img/flags/german.jpg" class="flag">'
<td class="subtitle-flag"> {{subtitle.language | flag | safe}}</td>
答案 0 :(得分:1)
是否需要返回整个图像对象而不仅仅是文件名?如果不是,你可以尝试:
@register.filter(name="flag")
def flag(language):
if language == 'fr':
return 'french'
elif language == 'ge':
return 'german'
<td class="subtitle-flag">
{% with flag_name=subtitle.language|flag|safe %}
<img src="{% static 'img/flags/'|add:flag_name|add:'.jpg' %}" class="flag" />
{% endwith %}
</td>
阅读文档,了解有关add
filter和with
tag。