est ici l'affaire:Comment implémenter une interface commune pour les ensembles d'objets liés à Django?
Je suis arrivé deux modèles db, disons que ShoppingCart
et Order
. Suivant le principe DRY, je voudrais extraire quelques accessoires/méthodes communs dans une interface partagée ItemContainer
. Tout s'est bien passé jusqu'à ce que je rencontre la méthode _flush()
qui effectue principalement une suppression sur un ensemble d'objets connexes.
class Order(models.Model, interface.ItemContainer):
# ...
def _flush(self):
# ...
self.orderitem_set.all().delete()
La question est: comment puis-je savoir dynamique que ce soit de orderitem_set
ou shoppingcartitem_set
?
Vous pouvez effectivement faire l'héritage multiple comme ça et il fonctionne sans problème (pour autant que je peux dire), mais je hériterait encore probablement ItemContainer de modèle (sauf si c'est une interface t hat peut s'appliquer aux objets non-Model). –