2

Скажем, у меня есть 3 Джанго приложения, приложения Страна, приложение социального и приложение Financial.Джанго Master-Detail View Плагины

Страна является приложением «главная навигация». В нем перечислены все страны в виде «индекса» и показаны детали для каждой страны по ее «детали».

Сведения о каждой стране включают их социальные детали (из социального приложения) и их финансовые данные (из финансового приложения).

социальных и финансовые и имеет вид детали (для каждой страны)

Есть элегантный способ «заглушку» в этих взглядах к югу подробно в поле зрения мастер детализации по странам? Поэтому для каждой страницы подробностей каждой страны я бы увидел 2 вкладки, показывающие социальные и финансовые данные для этой страны.

+0

Подходит ли для ваших подпрограмм представления бизнес-логики к ним? В противном случае, возможно, вы просто визуализируете детали в шаблоне, используя отношения fk, например {{country.financial.foo}}? Даже если бизнес-логика необходима, вы можете иногда вставлять ее в теги шаблонов. Возможно, вам придется уточнить больше. – michael

+0

Я предпочитаю встраивать представления, а не шаблоны, если это возможно. – jameszhao00

ответ

2

2 общее решение я использую для этой проблемы:

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

AJAX:
Сделайте свой "социальный" и "финансовые" взгляды осведомленные называться в XMLHTTPRequest (request.is_ajax()). Если они есть, они возвращают только элемент DIV, без всего HTML вокруг него. Таким образом, ваша мастер-страница может отобразиться без нее и добавить этот контент «на лету».
Путь AJAX имеет несколько преимуществ: вы не визуализируете представления плагинов по тому же запросу, что и целая страница, поэтому, если у вас есть много из этих плагинов, главная страница будет загружаться быстрее, и вы можете иметь интеллектуальный javascript выберите только соответствующие плагины, которые нужно запросить.
Кроме того, вы можете использовать обычный вид для генерации данных, которые вам нужны в шаблоне (чего вы действительно не можете сделать в методе частичных шаблонов).

Смежные вопросы