Dans Django, si vous avez des modèles qui utilisent l'héritage multi-table et que vous définissez un récepteur pour un signal post_save sur la classe parent, cette fonction récepteur est-elle appelée lorsqu'un instance de la classe enfant est enregistrée?Django signal post_save sur la classe parente avec héritage multi-table
Empruntant un exemple from another question:
class Animal(models.Model):
category = models.CharField(max_length=20)
class Dog(Animal):
color = models.CharField(max_length=10)
def echo_category(sender, **kwargs):
print "category: '%s'" % kwargs['instance'].category
post_save.connect(echo_category, sender=Animal)
Si je fais:
>>> dog = Dog.objects.get(...)
>>> dog.category = "canine"
>>> dog.save()
sera appelé la fonction du récepteur echo_category
?
Où pouvez-vous mettre cet extrait en toute sécurité afin que toutes les sous-classes soient déjà enregistrées? –
@ScottStafford Dans la [méthode de l'application prête] (https://docs.djangoproject.com/fr/1.11/ref/applications/#django.apps.AppConfig.ready) –