Load static files for all templates in django

2020-06-01 07:53发布

Is there a way in django to not need the {% load static %} at the top of every template?

This question indicates you can factor out common load tags into settings, but doesn't give the particulars you need in this case.

2条回答
看我几分像从前
2楼-- · 2020-06-01 08:22

As of Django 1.9, you can add a builtins key to your TEMPLATES["OPTIONS"] in settings.py.

For Django 2.1+, use:

'builtins': ['django.templatetags.static']

For Django 1.9 - 2.0 (this will work up until 2.2, after which it is deprecated), use:

'builtins': ['django.contrib.staticfiles.templatetags.staticfiles']

For example, the whole template setting might look like this:

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'],
        },
    },
]

Thanks to @ZachPlachue for the Django 3 update.

查看更多
Melony?
3楼-- · 2020-06-01 08:34

The previous answer's method is deprecated as of Django 3.0. (see : https://docs.djangoproject.com/en/3.0/releases/3.0/#features-removed-in-3-0)

Now you'd need to add the following to your template settings:

'builtins': ['django.templatetags.static']

This is the updated templates setting:

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',
            ],
        },
    },
]
查看更多
登录 后发表回答