【发布时间】:2016-06-20 14:43:11
【问题描述】:
在 django 中有没有办法不需要每个模板顶部的 {% load static %}?
This question 表示您可以将常见的加载标签分解到设置中,但在这种情况下没有提供您需要的详细信息。
【问题讨论】:
标签: python django django-staticfiles static-files
在 django 中有没有办法不需要每个模板顶部的 {% load static %}?
This question 表示您可以将常见的加载标签分解到设置中,但在这种情况下没有提供您需要的详细信息。
【问题讨论】:
标签: python django django-staticfiles static-files
从 Django 1.9 开始,您可以在 settings.py 中为您的 TEMPLATES["OPTIONS"] 添加一个 builtins 键。
对于 Django 2.1+,使用:
'builtins': ['django.templatetags.static']
对于 Django 1.9 - 2.0(这将一直工作到 2.2,之后它被弃用),使用:
'builtins': ['django.contrib.staticfiles.templatetags.staticfiles']
例如,整个模板设置可能如下所示:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
'builtins': ['django.templatetags.static'],
},
},
]
感谢 @ZachPlachue 的 Django 3 更新。
【讨论】:
从 Django 3.0 开始,不推荐使用上一个答案的方法。 (见:https://docs.djangoproject.com/en/3.0/releases/3.0/#features-removed-in-3-0)
现在您需要将以下内容添加到您的模板设置中:
'builtins': ['django.templatetags.static']
这是更新后的模板设置:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
'builtins': [
'django.templatetags.static',
],
},
},
]
【讨论】: