создание моего собственного процессора контекста в django

Я приехал в точку, куда я должен передать определенные переменные всем моим представлениям (главным образом пользовательские переменные типа аутентификации).

Мне сказали, пишущий, что мой собственный процессор контекста был лучшим способом сделать это, но у меня есть некоторые проблемы.

Мой файл настроек похож на это

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.contrib.messages.context_processors.messages",
    "sandbox.context_processors.say_hello", 
)

Как Вы видите, у меня есть модуль, названный 'context_processors' и функцией в названном 'say_hello'.

Который похож

def say_hello(request):
        return {
            'say_hello':"Hello",
        }

Действительно ли я прав предположить, что я могу теперь сделать следующее в рамках своих представлений?

{{ say_hello }}

Прямо сейчас это не представляет ни к чему в моем шаблоне.

Мое представление похоже

from django.shortcuts import render_to_response

def test(request):
        return render_to_response("test.html")
75
задан dotty 8 June 2015 в 11:53
поделиться

1 ответ

Написанный вами контекстный процессор должен работать. Проблема в твоем видении.

Вы уверены, что ваше представление визуализируется с помощью RequestContext ?

Например:

def test_view(request):
    return render_to_response('template.html')

Представленное выше представление не будет использовать контекстные процессоры, перечисленные в TEMPLATE_CONTEXT_PROCESSORS . Убедитесь, что вы указываете RequestContext следующим образом:

def test_view(request):
    return render_to_response('template.html', context_instance=RequestContext(request))
49
ответ дан 24 November 2019 в 11:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: