2010-01-04 15 views
1

Je travaille sur un projet qui a plusieurs applications, et je veux inclure une application de nouvelles pour les nouvelles. Toutefois, je souhaite associer des actualités aux objets de mon application personnalisée, mais utiliser une application d'actualités open source pour diffuser les nouvelles.découplage applications django - meilleure pratique pour la mise en page d'un projet

En ce moment, j'ai simplement piraté l'application de nouvelles choisie pour ajouter une relation ForeignKey avec mon modèle.

à savoir une application de widgets, avec un modèle widget

alors une application de nouvelles avec le modèle d'entrée directement lié à mon modèle widget

Y at-il une meilleure façon de le faire? parce que si je veux mettre à jour l'application de nouvelles avec la dernière version de celui-ci, il va évidemment écraser mon hack.

je pourrais avoir le lien de mon modèle personnalisé, mais le flux de travail devrait vraiment être

  1. Ajouter article de nouvelles
  2. choisir un widget pour le lier à

PAS

  1. Ajouter un article de nouvelles, enregistrer
  2. Trouver le wi DGET pour le lier à
  3. Pour retourner à l'article de nouvelles

Répondre

5

Je pense que vous pourriez avoir un modèle qui hérite du modèle dans l'application externe. Quelque chose du genre:

MyNewsArticle(ExternalAppNewsArticle): 
    object = models.ForeignKey(MyObject) 

Tant que vous ajoutez des choses plutôt que de laisser tomber des choses, cela devrait fonctionner. Vous devez être prudent si le modèle de l'application externe a des gestionnaires personnalisés déclarés, car par défaut, Django ne les héritera pas. Vous devrez peut-être les déclarer à nouveau dans votre propre modèle.

+0

cela a du sens. à votre santé –