Возникли проблемы с обновлением некоторых ManyToManyField с помощью сигналов

Когда я создаю нового студента, я хотел бы, чтобы поле studentlist в Tutors и поле taught_by в Students отражали одинаковые значения.

ie добавить нового студента список учеников обновляется с именем ученика создан новый урок с именем ученика

я действительно потерялся с сигналами и тем, что нужно поместить внутрь, особенно при создании или редактировании множества полей

the signals.py:

    @receiver(post_save, sender=Students)
    def createdStudentToLesson(sender, instance, created, **kwargs):
        if created:
        student = instance
        lesson = Lessons.objects.create(
        
        student = student
        )
        print("lesson saved")

the models.py:

    class Lessons(models.Model):
        student             = models.ForeignKey(Students, on_delete=models.SET_NULL, null=True)  
        headed_by           = models.ForeignKey(Tutors, on_delete=models.SET_NULL, null=True)
        day                 = models.CharField(max_length=4, choices=DAY_CHOICES, null=True)
        start_time          = models.TimeField(null=True, blank=True)
        type                = models.CharField(max_length=7, choices=TYPE_CHOICES, null=True)
        price_band          = models.CharField(max_length=7, choices=PAYMENT_TYPE_CHOICES, blank=True, null=True)
        created             = models.DateTimeField(auto_now_add=True )


        def __str__(self):
            return str(self.student) + " at " + str(self.start_time)
        class Meta:
    ordering=['student','start_time']  



    class Students(models.Model):
        name            = models.CharField(max_length=200, null=True, blank=True)
        taught_by       = models.ManyToManyField("Tutors", blank=True)
        school_year     = models.CharField(max_length=2, choices=YEAR_CHOICES, null=True, blank=True)
        gender          = models.CharField(max_length=1, choices=GENDER_CHOICES, null=True, blank=True)
        created         = models.DateTimeField(auto_now_add=True)
        id              = models.UUIDField(default=uuid.uuid4, primary_key=True, 
    unique=True, editable=False)
        def __str__(self):
            return str(self.name)      
        class Meta:
            ordering = [
                "name"
            ]


class Tutors(models.Model):
    name         = models.CharField(max_length=200, null=True, blank=True)
    studentlist  = models.ManyToManyField('Students', blank=True)
    lessonlist   = models.ManyToManyField('Lessons', blank=True)
    short_bio  = models.CharField(max_length=100,null=True, blank=True)
    rate       = models.CharField(choices=PAYMENT_TYPE_CHOICES, max_length=7, 
                                  blank=True, null=True)
    created    = models.DateTimeField(auto_now_add=True)
    id         = models.IntegerField(primary_key=True, unique=True)

    def __str__(self):
        return str(self.name)    

заранее большое спасибо за ваше время.

Вернуться на верх