Django добавляет глобальную переменную - PullRequest
0 голосов
/ 10 мая 2018

Моя проблема, я хочу использовать запрос и добавить переменную в глобальную переменную и использовать эту переменную в любом месте шаблона django, такого же request.

Будем весьма благодарны за любые предложения или советы по решению проблемы !! Заранее спасибо!

1 Ответ

0 голосов
/ 10 мая 2018

Вы можете использовать context_processors.

Сначала добавьте свой собственный context_processors.py в свое приложение (например, common приложение или что-то в этом роде).

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' в любых шаблонах.

...