2 общее решение, которое я использую для этой проблемы:
Частичные шаблоны:
Создайте шаблон для рендеринга «социальных» и «финансовых», который не нуждается ни в каких элементах представления, кроме объекта, над которым он работает (и использует функции объектов или теги шаблона для его визуализации).
затем вы можете легко {% include%} его (и сначала установить необходимую переменную).
Это частичное представление не отображает полную HTML-страницу, а только один DIV или какой-либо другой HTML-элемент, который вы хотите использовать. Если вам также нужна страница «только для социальных сетей», вы можете создать страницу, которая отображает заголовок и затем включает частичный шаблон. Вы можете использовать соглашение, например _template.html для частичного шаблона и template.html для обычного шаблона.
AJAX:
Сообщите своим «социальным» и «финансовым» представлениям о том, что их вызывают в XMLHTTPRequest (request.is_ajax ()). Если они есть, они возвращают только элемент DIV без всего HTML-кода вокруг него. Таким образом, ваша главная страница может отображаться без нее и добавлять этот контент на лету.
Способ AJAX имеет несколько преимуществ: вы не визуализируете представления плагинов по тому же запросу, что и вся страница, поэтому, если у вас много таких представлений плагинов, мастер-страница будет загружаться быстрее, и вы можете выбрать только интеллектуальный JavaScript соответствующие плагин-представления для запроса.
Кроме того, вы можете использовать обычное представление для генерации необходимых вам данных в шаблоне (чего вы не можете сделать в методе Partial Templates).