将条件设置为Django Rest模型中的两个字段

时间:2018-10-26 20:29:46

标签: django-rest-framework

这是我的模型之一,只有两个字段

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 :(得分:1)

您可以在模型级别定义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,您可以在序列化程序中定义它。