#django
#django
Вопрос:
Теперь я использую представление на основе классов в своем приложении Django, и это очень помогает мне быстрее развиваться.
У меня все еще есть вопрос о наилучшем способе реализации следующего:
В моей базе данных есть некоторая информация, которую мне нужно всегда иметь почти в каждом имеющемся у меня шаблоне (кроме шаблона, в котором пользователь не вошел в систему).
Какой хороший способ сделать это с помощью Django? Можно ли создать представление на основе класса с пользовательским запросом в методе .get()?
Спасибо 🙂
Комментарии:
1. Напишите пользовательский обработчик контекста шаблона.
Ответ №1:
Для этого есть несколько разных способов.
Если вы постоянно используете представления на основе классов повсюду, вы могли бы создать общий базовый класс с пользовательским get_context_data
методом, который добавляет ваши конкретные данные в контекстный словарь.
Но более обычные способы решения этой проблемы не имеют ничего общего с представлениями на основе классов, но применимы ко всем видам представлений. Это пользовательские теги шаблона и контекстные процессоры.
Для меня, вероятно, лучшим выбором является контекстный процессор: пока вы гарантируете, что ваш шаблон отображается с помощью RequestContext (что будет, если вы используете любое представление, наследуемое от TemplateView), ваши дополнительные данные всегда будут добавлены в контекст шаблона.
Комментарии:
1. Спасибо 🙂 ContextProcessor был тем, чего мне не хватало 😉