Bonjour à tous,
J'ai un problème avec l'héritage dans mes models: je crée une classe ThrashableModel en m'inspirant de ce billet:avec les managers qui vont bien:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 class TrashableModel(models.Model): deleted = models.BooleanField(default=False, null=False, blank=False) objects = UnTrashedManager() trashed = TrashedManager() def delete(self): self.deleted = True self.save() def undelete(self): self.deleted = False self.save() restore = undeletej'hérite de mon model:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 class UnTrashedManager(models.Manager): def get_query_set(self): return super(UnTrashedManager, self).get_query_set().filter(deleted=False) class TrashedManager(models.Manager): def get_query_set(self): return super(TrashedManager, self).get_query_set().filter(deleted=True)L' héritage fonctionne pour le champ deleted, pas pour mes managers!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class Zone(TrashableModel): name = models.CharField(max_length=64, null=False, blank=False, unique=True) slug = models.CharField(max_length=4, null=False, blank=False, unique=True) def __unicode__(self): return "zone %s" % self.nom
Y-a-t-il une astuce pour les hériter sans avoir à les ré-écrire dans chaque nouveau model?
Merci.
Partager