Django ограничение для связанной модели

Всем привет! Возникла проблема с составлением ограничения для модели. У меня есть две модели Question(Описывает вопрос из теста) и Answer(Описывает ответы к Question). Answer имеет поле is_right (BooleanField), которое говорит о правильности или неправильности ответа. Так же Answer через ForeignKey ссылается на Question.

Вот упрощенный код:

class Question(models.Model):
    ...

    class Meta:
        constraints = []

class Answer(models.Model):
    ...
    question = models.ForeignKey(Question, related_name='answers', on_delete=models.CASCADE)
    is_right = models.BooleanField(default=False)

Я хочу сделать ограничение для модели Question, которое проверяет все связанные с вопросом(Question) ответы(Answer) на наличие хотя бы одного верного(is_right=True) и хотя бы одного неверного(is_right=False)

То есть нельзя будет сохранить вопрос у которого все варианты ответа правильные или неправильные.

Можно ли сделать такое с помощью django constraints или тут только сырой SQl?

Я использую django 4 и PostgreSQL 15

В документации к Constraints смог найти только примеры с проверкой полей самой модели на которой есть Constraint.

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