Question

Donc, dans mon projet Django J'ai quelques applications différentes, chacune avec leurs propres modèles, vues, modèles, etc. Ce qui est une bonne façon (la façon dont « Django ») d'avoir ces applications communiquent?

Un exemple spécifique serait une application qui a des réunions un modèle pour les réunions, et j'ai une application maison dans laquelle je veux afficher top 5 réunions sur la page d'accueil.

Voir l'accueil de l'App devrait juste interroger les réunions du modèle App?

On dirait que traverse une ligne et il pourrait y avoir un moyen plus découplé à faire des choses comme ça dans Django.

Était-ce utile?

La solution

À un certain moment vos applications ont à coupler afin d'obtenir un travail effectué. Vous ne pouvez pas contourner cela.

Autres conseils

Pour le découplage, autant que possible,

Vous devez avoir une application spécifique du projet, qui fait toutes les choses RACCORDEMENT entre eux.

En utilisant des signaux à partir de modèles pour créer de nouveaux modèles dans une des applications découplées aide. Mais faire trop de cela, est stupide.

  

Si le point de vue Home App Interroger simplement les réunions du modèle App?

Oui, voilà comment il est fait. Si vous voulez vraiment découpler les choses, vous pouvez rendre votre application Home utiliser les clés étrangères génériques, et une sorte de système de modèle générique, mais il n'y a pas vraiment une bonne raison, à moins que vous avez de grands projets pour votre application à domicile étant connectable et travaillant avec un tas d'autres applications différentes de Django.

L'écriture est vraiment facile étroitement couplé applications Django, et l'écriture découplée une application Django est vraiment difficile. Ne pas découpler sauf si vous avez une raison, et vous vous éviterez beaucoup de travail (et de bonheur!).

Si c'était moi, je ferais une étiquette de modèle dans votre application de réunion qui produit la sortie désirée et comprennent cette étiquette de modèle dans le modèle de l'application maison.

De cette façon, vous les couplant uniquement dans la partie Vue du MVC et le rend plus facile à maintenir si vous changez vos modèles dans l'application de la réunion.

Pour votre exemple précis, je voudrais utiliser un Django templatetag .

Avoir un templatetag « display_top_meetings » dans votre application de réunions, et de l'appeler avec {{ display_top_meetings 5 }} à partir du modèle d'index, le charger en premier.

Vous pouvez en savoir plus sur templatetags ici:

Django Documentation officielle sur les templatetags

B-List de article sur writting 'de meilleures balises de modèle de

J'espère que cette aide!

oui. Je pense que c'est une caractéristique de conception. Tous les modèles partagent un back-end, de sorte que vous auriez à faire un travail supplémentaire pour avoir deux modèles avec le même nom dans différentes applications.

Les projets ne doivent pas partager modèles

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