[英]Access STATIC_URL from within a custom inclusion template tag
我創建了一個自定義包含模板標記 ,它接受單個Update
模型對象。
模板標簽:
@register.inclusion_tag('update_line.html')
def update_line(update):
return {'update': update}
update_line.html :
<tr><td class="update">{{ update }}</td><td class="ack">
<img id="update-{{ update.pk }}" class="ack-img" src="{{ STATIC_URL }}img/acknowledge.png" alt="Acknowledge" /></td></tr>
問題是我的包含模板標記模板中沒有{{ STATIC_URL }}
,即使我使用的是django.core.context_processors.static
上下文處理器,因此{{ STATIC_URL }}
可用於我的所有“普通”模板未通過包含模板標記處理的內容。
有沒有辦法可以從我的包含模板標簽模板中獲取STATIC_URL
而不做一些令人討厭的事情,比如手動從設置中獲取並明確地將其作為上下文變量傳遞?
好的。 在發布問題后剛想出來:
我沒有在包含模板中使用{{ STATIC_URL }}
,而是使用static
模板標記中的get_static_prefix
標記:
update_line.html :
{% load static %}
<tr><td class="update">{{ update }}</td><td class="ack">
<img id="update-{{ update.pk }}" class="ack-img" src="{% get_static_prefix %}img/acknowledge.png" alt="Acknowledge" /></td></tr>
我相信現在這樣做的正確方法(django 1.5+)是:
update_line.html :
{% load staticfiles %}
<tr><td class="update">{{ update }}</td><td class="ack">
<img id="update-{{ update.pk }}" class="ack-img" src="{% static 'my_app/img/acknowledge.png' %}" alt="Acknowledge" /></td></tr>
在模板標記代碼中,您可以執行您喜歡的操作:因此您可以自己輕松地從settings
導入STATIC_URL
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.