Пишем свой context processor

категория: Django
Есть много дискуссий по поводу контекстных обработчиков в Django, можете почитать на досуге :) Но для меня это показалось очень полезным объявить парочку глобальных переменных. Я себе засунул туда название сайта и настройки (settings). Что это такое context processor? - это просто функция питона, которая принимает объект класса HttpRequest, а возвращает dictionary (словарь). Создадим в корне проекта директорию utils внутри нее создадим два файла __init__.py и context_processors.py. Пишем контекстый обработчик:
from django.conf import settings
def my_vars(request):
    return {
        'MY_TITLE': 'Acman',
        'MY_SETTINGS': settings
    }
После этого заходим в settings.py и в переменную TEMPLATE_CONTEXT_PROCESSORS добавляем наш обработчик my_vars:
TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'myblog.utils.context_processors.my_vars',
    ...
)
Пользуемся в своем шаблоне своим детищем {{ MY_SETTINGS }} и {{ MY_TITLE }}


blog comments powered by Disqus