Есть ли способ в django не нуждаться в {% load static %}
в верхней части каждого шаблона?
Этот вопрос указывает, что вы можете учитывать из общих тегов загрузки в настройки, но не дает подробностей, которые вам нужны в этом случае.
Есть ли способ в django не нуждаться в {% load static %}
в верхней части каждого шаблона?
Этот вопрос указывает, что вы можете учитывать из общих тегов загрузки в настройки, но не дает подробностей, которые вам нужны в этом случае.
Начиная с Django 1.9, вы можете добавить ключ builtins
к вашему TEMPLATES["OPTIONS"]
в settings.py
.
Для 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'],
},
},
]
Спасибо @ZachPlacue за обновление 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',
],
},
},
]