Django添加全局变量

时间:2018-05-10 02:57:12

标签: python django django-templates

我的问题,我想使用查询并将变量添加到全局,并将此变量用于任何地方django模板request

对于如何解决问题的任何建议或建议将不胜感激!提前谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用context_processors

首先,在您的应用中添加自己的context_processors.py(例如common app或其他内容。)

def test_processors(requests):
    return {
        'my_test_context': 'test',
    }

其次,将其添加到TEMPLATES.OPTIONS.context_processors' in settings.py`

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            str(ROOT_DIR.path('templates')),
        ],
        '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',
                # you can add here
                'myapp.context_processors.test_processor',
            ],
            'loaders': [
                'django.template.loaders.filesystem.Loader',
                'django.template.loaders.app_directories.Loader',
            ],
        },
    },
]

然后您可以在任何模板中使用'my_test_context'