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:
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 = undelete
avec les managers qui vont bien:
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)
j'hérite de mon model:
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
L' héritage fonctionne pour le champ deleted, pas pour mes managers!

Y-a-t-il une astuce pour les hériter sans avoir à les ré-écrire dans chaque nouveau model?

Merci.