Загрузить статические файлы для всех шаблонов в django

Есть ли способ в django не нуждаться в {% load static %} в верхней части каждого шаблона?

Этот вопрос указывает, что вы можете учитывать из общих тегов загрузки в настройки, но не дает подробностей, которые вам нужны в этом случае.


person Zags    schedule 07.03.2016    source источник


Ответы (2)


Начиная с 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.

person Zags    schedule 07.03.2016

Метод предыдущего ответа устарел с 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',
            ],
        },
    },
]
person Zack Plauché    schedule 14.12.2019
comment
Спасибо за обновления; Я включил это в свой ответ и дал вам кредит внизу - person Zags; 14.12.2019
comment
Спасибо! Рад внести свой вклад. Спасибо за первоначальное решение. @Загс - person Zack Plauché; 14.12.2019