Django Master-Detail View Plugins

Digamos que tengo 3 aplicaciones django, aplicación País , aplicación Social y aplicación Financiera .

País es una aplicación de ‘navegación maestra’. Enumera todos los países en una vista de “índice” y muestra los detalles de cada país en su vista de “detalles”.

Los detalles de cada país incluyen sus detalles sociales (de la aplicación social) y sus detalles financieros (de la aplicación financiera).

Tanto social como financiera tienen una vista detallada (para cada país)

¿Existe una manera elegante de ‘conectar’ esas vistas de sub-detalles en la vista de detalles maestra provista por los Países? Así que para cada página de detalles de país vería 2 tabs que muestran los detalles sociales y financieros de ese país.

2 solución común que utilizo para este problema:

Plantillas parciales:
Cree una plantilla para representar “social” y “financiera” que no necesite elementos de la vista, excepto el objeto en el que está trabajando (y utiliza las funciones de objetos o tags de plantilla para representarlo). entonces usted puede {% include%} fácilmente (y establezca primero la variable necesaria).
Esta vista parcial no representa una página HTML completa, sino solo un solo DIV o algún otro elemento HTML que desee utilizar. Si también necesita una página de “solo sociales”, puede crear una página que muestre el encabezado y luego incluya la plantilla parcial. Puede usar una convención como _template.html para la plantilla parcial, y template.html para la plantilla normal.

AJAX:
Haga que sus puntos de vista “sociales” y “financieros” sean conscientes de que se los llama en XMLHTTPRequest (request.is_ajax ()). Si lo son, devuelven solo un elemento DIV, sin todo el HTML a su alrededor. De esta manera, su página maestra puede procesarse sin ella y agregar ese contenido sobre la marcha.
El modo AJAX tiene varias ventajas: no representa las vistas de los complementos en la misma solicitud que toda la página, por lo que si tiene muchas de estas vistas, la página maestra se cargará más rápido y puede tener un javascript inteligente. Las vistas de plugin relevantes a solicitar.
Además, puede usar la vista normal para generar los datos que necesita en la plantilla (lo que realmente no puede hacer en el método de Plantillas parciales).