Je rencontre un souci en Django. Comme je sais que quelques-uns ici touche le sujet, je poste ma question.
J'ai deux applications différentes, l'une de gestion de recette, une autre de gestion de stock. Les deux applications utilise chacun une classe Ingredient.
Dans recette/models.py :
Code : Tout sélectionner
class Ingredient(models.Model):
nom = models.CharField(max_length = 20)
Dans l'application stock, j'ai la même classe Ingredient. Pour éviter de devoir me retaper le codage de toutes les méthodes complexes, je fais juste un héritage dans stock/models.py :
Code : Tout sélectionner
from recette.models import Ingredient as ext_Ingredient
class Ingredient(ext_Ingredient):
quantite = models.IntegerField()
J'ai envisager plusieurs réponses :
- l'architecture n'est pas logique, l'héritage entre application n'est pas vraiment "best practice" ;
- créer une classe abstraite avec les méthodes complexes, puis rendre les deux classes Ingredients soeur (fille de la classe abstraite) ;
- ajouter un attribut dans recette.models.Ingredient pour indiquer si l'objet est impliqué dans l'application, ou s'il vient d'ailleurs (c'est moche !) ;
- trouver un paramétrage de Django qui permet de stocker les deux classes dans des tables différentes.
Duna