Question

Supposons par exemple que je souhaite intégrer une application de blog à différents projets, mais que je souhaite toujours que le blog soit associé à un autre modèle. Par exemple, dans un cas, je peux souhaiter l'associer à un utilisateur:

site.com/someuser/blog

Mais sur un autre site, je souhaite l'associer à une école, par exemple:

site.com/someschool/blog

Existe-t-il un moyen de brancher l'application Blog pour qu'il ne soit pas nécessaire de redéfinir le modèle (ajout d'un champ de clé étrangère) chaque fois que je le dépose dans un projet?

Était-ce utile?

La solution

Vous voudrez peut-être examiner le framework ContentTypes, je l'ai utilisé pour créer une application de commentaire qui peut être utilisée pour commenter n'importe quel modèle de la base de données (pour différentes raisons, je ne voulais pas utiliser l'application de commentaire standard Django) .

http://docs.djangoproject.com/en/dev/ ref / contrib / contenttypes /

Autres conseils

Il y a plusieurs détails importants pour s'assurer qu'une application peut être réutilisable et je pense qu'il est préférable de faire un lien vers deux des ensembles de documentation les plus importants sur le sujet:

Les relations génériques vous permettent d'avoir une clé étrangère à tout autre modèle. Cependant, votre question ne dit pas clairement à quel type d'objet vous souhaitez associer une clé étrangère. Je soupçonne que la relation de clé étrangère n’est pas vraiment générique. Vous n’avez simplement pas repéré une autre partie de votre système qui pourrait également être une application réutilisable.

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