Django : limite d'une application

Salut à tous,

Je démarre quelques projets utilisant le framework Django. J’ai actuellement un gros problème de compréhension de ce framework. Un projet est divisé en “applications”. Mais qu’est-ce qu’une application ? Si je voulais re-coder ce forum, les applications seraient-elles “Messagerie” et “Forum”, ou bien “Poster un message”, “Cocher un sujet résolu”, “Ajouter un smiley” etc ?

J’ai vraiment du mal à voir où se situe la limite. Deux applications différentes peuvent-elles agir sur les même tables de la base de données ? J’imagine que oui, puisque django.contrib.admin est une application. Mais comment ? Étant donné que les modèles sont définis dans une application, je ne comprends pas comment deux applications peuvent avoir les même modèle.

Malheureusement, tous les tutos que j’ai lus concernent le développement d’une seule application. Du coup, les auteurs des tutos ne sont pas confrontés à ce problème.

Merci d’avance pour votre aide :slightly_smiling:
Duna

Tu peux avoir les mêmes définitions de modèle dans deux applications différentes.
Une appli serait plutôt “forum”

Ok, mais les objets aux sens Python (ou les enregistrements dans les tables au sens BDD) seront-ils les mêmes entre les deux applications ?

Si je fais une application forum et une application blog, et que l’utilisateur doit voir sur son blog les dernier message du forum, j’ai besoin d’avoir une partie du modèle en commun entre les deux applications.

Merci pour l’exemple d’application. J’y vois déjà un petit peu plus clair.

Peux importe que ce soit deux modèles dans deux appli différentes, les données dans la table sont communes, donc quand tu vas lire tes infos tu auras les dernière enregistrées.
Tu peux même avoir un champ ‘application’ ou tu renseignes l’application à l’origine de la modification.
Dans notre appli (pas en Django mais avec EclipseLink) on a un champ “Component” qui a la même fonction.

Et bien c’est parfait, je crois que tu as répondu à toutes mes questions du moment.
Merci :smiley: