我想在使用模板標記時從靜態目錄動態添加圖示,但我不想將它們添加到模板 HTML 中,而是使用過濾器:
{% for field in form %}
<td>{{ field|format_ }}</td>
{% endfor %}
并format_期待這樣的:
@register.filter(name = "format_")
def format_(field):
if field.widget_type == "clearablefile":
f = f"""{field}<button hljs-string">"><img src="{{% static 'images/x-square.svg' %}}"></button>"""
return mark_safe(f)
return field
我用我在模板中使用的相同語法嘗試了它,但只是轉義了:它只是以<img src="{{% static 'images/x-square.svg' %}}">明文形式顯示,而不是模板上的圖示。這里的正確方法是什么?
uj5u.com熱心網友回復:
使用這樣的static函式:
# Older Django <3.0 (also deprecated in 2.0):
from django.contrib.staticfiles.templatetags.staticfiles import static
# Django 3.0
from django.templatetags.static import static
iconUrl = static('images/x-square.svg')
您的代碼將是:
@register.filter(name = "format_")
def format_(field):
if field.widget_type == "clearablefile":
iconUrl = static('images/x-square.svg')
f = f"""{field}<button hljs-string">"><img src="{iconUrl}"></button>"""
return mark_safe(f)
return field
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/395937.html
