Django ManyToMany CheckConstraint IntegerField
У меня есть несколько моделей, 1 абстрактная, и 2, которые наследуются от абстрактной модели с отношением ManyToMany. Одна модель получает свои члены от другой модели. Я хочу реализовать ограничение на эту модель, чтобы ее члены не могли быть больше, чем Sum of remaining_members в исходных группах. Я создал выражение Q, которое выражает то, чего я хочу достичь, но я знаю, что это не правильный способ сделать это. Как я могу создать ограничение для моделей, связанных полем ManyToMany?
class AbstractGroup(models.Model):
members = models.IntegerField()
class Meta:
abstract=True
class OriginalGroup(AbstractGroup):
remaining_members = models.IntegerField()
new_group_members = ManyToManyField(NewGroup, related_name=new_group, related_query_name=new_group)
class NewGroup(AbstractGroup):
name = models.CharField()
class Meta:
constraints = [
models.CheckConstraint( Q(members__lte=original_groups__sum__remaining_members, name='%(app_label)s_%(class)s_available_members' ) )
]