установить условия для двух полей в модели отдыха django - PullRequest
0 голосов
/ 26 октября 2018

Это одна из моих моделей, у которой есть только два поля

class Exams(models.Model):
    student = models.ForeignKey(StudentProfile, on_delete=models.CASCADE)
    exam = models.ForeignKey(ExamModel, on_delete=models.CASCADE)

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

то есть, могут быть поля типа

{"student": 1, "exam": 1}, {"student": 2, "exam": 1}, {"student": 2, "exam": 2}, {"student": 1, "exam": 2}

, но не должно быть полей типа

{"student":1, "exam":1}, {"student":1, "exam":1}

или просто должны быть сгенерированы не дублированные поля

1 Ответ

0 голосов
/ 27 октября 2018

Вы можете определить unique_together на уровне модели:

class Exams(models.Model):
    student = models.ForeignKey(StudentProfile, on_delete=models.CASCADE)
    exam = models.ForeignKey(ExamModel, on_delete=models.CASCADE)

    class Meta:
        unique_together = (('student', 'exam'),)

Кроме того, Django Rest Framework также имеет UniqueTogetherValidator, который вы можетеопределите в вашем сериализаторе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...