Pregunta

Vamos a decir que tengo 3 aplicaciones Django, app País aplicación Social y aplicación Financieros .

País es una aplicación de 'la navegación principal'. En él se enumeran todos los países en un 'índice' vista y en detalle de cada país en su opinión 'detalles'.

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

Social y Financiera ambos tienen una vista de detalle (para cada país)

¿Hay una manera elegante de 'tapón' en esos puntos de vista sub-detalle en la vista de detalle maestro proporcionada por los países? Así que para cada página de detalles del país que iba a ver 2 pestañas que muestra el social y los detalles financieros de ese país.

¿Fue útil?

Solución

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

Plantillas parciales:
Crear una plantilla para la representación "social" y "económico" que no necesita cosas de la vista, que no sea el objeto que está trabajando en (y utiliza las funciones de objetos o etiquetas de plantilla para hacerlo). a continuación, puede fácilmente {% include%} es (y establecer la necesaria primera variable).
Esta visión parcial no hace que una página HTML, pero sólo un único DIV o algún otro elemento HTML que desea utilizar. Si también necesita un "socio-única" página, puede crear una página que hace que la cabecera y luego incluye la plantilla parcial. Puede utilizar una convención como _template.html para la plantilla parcial, y template.html para la plantilla regular.

AJAX:
Hacer sus "sociales" y vistas "financieros" conscientes de ser llamado en XMLHTTPRequest (request.is_ajax ()). Si lo están, sólo se vuelven un elemento DIV, sin todo el código HTML a su alrededor. De esta manera su página maestra puede hacer sin ella, y añadir que el contenido sobre la marcha.
La forma AJAX tiene varias ventajas: que no se representan los puntos de vista Plugin en la misma petición como a toda la página, por lo que si usted tiene muchos de estos puntos de vista plugin, la página maestra se carga más rápido, y se puede tener un javascript inteligente elegir sólo los puntos de vista de plugin pertinentes para pedir.
Además, puede utilizar la vista normal para generar datos que necesita en la plantilla (que realmente no se puede hacer en el método de plantillas parcial).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top