Я получаю ошибку при ограничении внешних ключей

Цель: Я хочу ограничить (20) количество студентов в группе.

Я пытался сделать валидацию (основанную на этом вопросе - Limit number of foreign keys), но возникла проблема - она работает, когда я пытаюсь сделать 21 студента в группе в моей панели администратора Django, но когда я пытаюсь изменить логин (или другие параметры) студента (в группе на данный момент 20 студентов), который уже в группе, возникает ошибка, потому что кажется, что у меня уже есть 20 студентов и я пытаюсь добавить нового

 def validate_number_of_students(value):
     if User.objects.filter(group=value).count() >= 20:
         raise ValidationError('Already 20 students in group (20)')

class User(AbstractUser):
    role = models.CharField(max_length=max([len(role[0]) for role in ROLES]),
                            choices=ROLES,
                            default=USER,
                            )
    group = models.ForeignKey('structure.Group',
                              on_delete=models.SET_NULL,
                              related_name='users',
                              blank=True,
                              null=True,
                              validators=(validate_number_of_students, )
                              )

Я пытался использовать этот метод с constraint (ограничить количество внешних ключей с помощью Django CheckConstraint), но получаю ошибку, может я что-то делаю не так? (У меня два приложения - структура с моделью Group и пользователи с моделью User)

models.CheckConstraint(
                name="limit_students_in_group",
                check=IntegerLessThan(
                    models.Count("group", filter=models.Q(group=models.F("group"))),
                    20),
                )
Вернуться на верх