Tengo los siguientes modelos de ejemplo:
class TestSet(models.Model): name = models.CharField(max_length=50) def __str__(self): return self.name class Class(models.Model): name = models.CharField(max_length=50) test_set_id = models.ForeignKey(TestSet) def __str__(self): return self.name class Test(models.Model): title = models.CharField(max_length=50) test_set_id = models.ForeignKey(TestSet) def __str__(self): return self.title class ClassTest(models.Model): class_id = models.ForeignKey(Class) test_id = models.ForeignKey(TestSet) memo = models.CharField(max_length=250) def __str__(self): return self.memoLo que quiero hacer es que cuando se crea una nueva clase o prueba, también debería crear automáticamente una entrada ClassTest si su test_set_id coincide con las entradas actuales en la base de datos.
Ejemplo:
Así que hay dos respuestas que vienen a la mente:
instance es básicamente la clase recién creada y simplemente puede operar la consulta estándar de Django con la que obtiene y crea objetos adicionales. @receiver(post_save, sender=Class) def create_test_sets(sender, instance, created, **kwargs): if created: ///do things///