这是我的模型之一,只有两个字段
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}
或应该生成不重复的字段
答案 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
,您可以在序列化程序中定义它。