Поле Django ManytoMany остается пустым после вызова метода .add()

Привет всем, я использую django для создания платформы регистрации, где студенты могут записываться на еженедельные занятия. Каждый класс представляет собой модель django под названием ClassCards с полем User manytomany под названием signed_up_student, которое представляет всех пользователей, записавшихся на этот класс, как показано ниже

'''

class ClassCards(models.Model):
    content = models.CharField(max_length=100, default = '')
    date = models.DateField(blank=True, null = True)
    time = models.TimeField(blank=True,null=True)
    signed_up_students = models.ManyToManyField(User,blank=True)
    full = models.BooleanField(default = False)
    max_students = models.IntegerField(default=4)
    teacher = models.CharField(max_length=100, default='Adi')

'''

Я хотел бы добавить опцию подписки, которая будет автоматически записывать подписавшихся студентов на занятия этой недели. Вот моя модель подписки:

'''

class Subscriptions(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, null =True)
    day = models.CharField(max_length=100, choices=day_choices, null=True)
    time = models.TimeField(blank=True, null=True)
    num_of_times_used = models.IntegerField(default=0)
    cap = models.IntegerField(default=52)
    active = models.BooleanField(default= True)
    expirey_date = models.DateField()
    date_created = models.DateField(default = timezone.now)

'''

Для достижения этой цели я создал сигнал post_save:

'''

    @receiver(post_save,sender=ClassCards)
    def apply_subsciptions(sender,instance,created, **kwargs):

        if created:
            subs = Subscriptions.objects.filter(day=instance.date.strftime("%A"), 
    time=instance.time)

            for s in subs:
               instance.signed_up_students.add(s.user)
               print(instance.signed_up_students.get())

''' Код работает правильно, когда ClassCard сохраняется без ошибок, и оператор печати печатает соответствующего пользователя. Однако, когда я смотрю на страницу администратора, я вижу, что в поле signed_up_students нет пользователей. Хотелось бы понять, почему это не работает так, как хотелось бы, и добавить пользователя в поле manytomany. И хотелось бы услышать любую информацию о том, что является лучшей практикой для автоматического обновления поля manytomany. Спасибо

небольшая модификация класса ClassCards

 class ClassCards(models.Model):
         signed_up_students = models.ManyToManyField(User, symmetrical=False, related_name="student_cards_students_has", blank=True)


   def signed_students_list(self):
    return self.signed_up_students.all()

   def cards_asigned_to_student_list(self):
    return self.student_cards_students_has.all()

   def assign_student(self, user):
    self.signed_up_students.add(user)

   def unsign_user(self, user):
    self.signed_up_students.remove(user)

сейчас в сигналах

@receiver(post_save,sender=ClassCards)
def apply_subsciptions(sender,instance,created, **kwargs):

    if created:
        subs = Subscriptions.objects.filter(day=instance.date.strftime("%A"),time=instance.time)

        for s in subs:
           instance.assign_student.add(s.user)
        print(instance.signed_students_list())
        print(instance.cards_asigned_to_student_list())
Вернуться на верх