我想在模板中使用静态标签,如下所示:
<img src="{% static "img/test.jpg" %}">
我发现这需要我把
{% load static %}
位于每个模板文件的开头。 由于我在任何地方都使用它,因此我希望它成为全局可用的标记,这样我就不需要放置 {% load static %} 来使用它。
在我的设置中,我确实有:
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.static',
)
我看到了这两个问题: Make django static tag globally available 和 Load a Django template tag library for all views by default 尽管两者似乎都没有回答这个问题。在前者中,问题不清楚,在后者中,当我尝试使用时出现错误:
from django.template.loader import add_to_builtins
add_to_builtins('django.core.context_processors.static')
也许我没有把它放在正确的位置,或者它已经是核心的一部分所以不起作用?
如何自动将静态标记添加到所有模板文件中,而无需为每个文件显式加载它?
最佳答案
我认为很多答案都忘记了需要将代码放在哪里。好吧,首先让我告诉您,您可以使用以下代码来完成工作:
from django.template.loader import add_to_builtins
add_to_builtins('django.templatetags.static')
现在将其放入您的主 urls.py
文件中。这对我有用。
关于django - 全局加载Django "static"模板标签库,无需在每个文件中显式加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18709803/