簡體   English   中英

從自定義包含模板標記中訪問STATIC_URL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM