Question

Disons que j'ai 3 applications django, app Pays , app Social et application financiers .

Country est une application 'de navigation maître'. Il énumère tous les pays en vue « index » et montre les détails pour chaque pays sur son point de vue « détails ».

Les coordonnées de chaque pays leurs détails sociaux (de l'application sociale) et leurs détails financiers (de l'application financière).

tant social et financier ont une vue détaillée (pour chaque pays)

Y at-il une façon élégante de « prise » dans ces sous-vues de détail dans la vue détaillée maître fournies par les pays? Donc, pour chaque page de détail de pays que je verrais 2 onglets montrant le social et les détails financiers pour ce pays.

Était-ce utile?

La solution

2 solution commune que j'utilise pour ce problème:

Modèles partiels: Créer un modèle pour le rendu « social » et « financier » qui n'a pas besoin des choses de la vue, autre que l'objet auquel il travaille sur (et utilise les fonctions des objets ou des balises de modèle pour le rendre). alors vous pouvez facilement {% include%} (et définissez la première variable nécessaire).
Cette vue partielle ne rend pas une pleine page HTML, mais seulement un seul DIV ou un autre élément HTML que vous souhaitez utiliser. Si vous avez aussi besoin d'une page « social-only », vous pouvez créer une page qui rend l'en-tête et comprend alors le modèle partiel. Vous pouvez utiliser une convention comme _template.html pour le modèle partiel et template.html pour le modèle régulier.

AJAX: Faites connaître votre opinion « social » et « financiers » au courant d'être appelé dans XMLHttpRequest (request.is_ajax ()). Si elles le sont, ils reviennent seulement un élément DIV, sans tout le HTML autour d'elle. De cette façon, votre page principale peut rendre sans elle, et d'ajouter que le contenu à la volée.
La façon dont AJAX a plusieurs avantages: vous ne rend pas les vues de plug-in sur la même demande que la page entière, donc si vous avez beaucoup de ces vues plugin, la page principale se charge plus rapidement, et vous pouvez avoir un javascript intelligent choisir seulement les vues de plug-ins pertinents pour demander.
, Vous pouvez également utiliser l'affichage normal pour générer des données dont vous avez besoin dans le modèle (que vous ne pouvez pas vraiment faire dans la méthode partielle Modèles).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top