我这里有两个模型,彼此相关。我在这里要做的是避免重复。例如在9年级,他们只能有一个卷号=32(不能有两个卷号),但在不同年级可能有两个相同的卷号
示例:name=Mark,grade=9,rollno=32和name=Shub,grade=9,rollno=32应该不可能,但是name=Mark,grade=9,rollno=32和name=Mark,grade=10,rollno=32应该可能
class Grade(models.Model):
grade = models.CharField(max_length=255, primary_key=True)
class Student(models.Model):
name = models.CharField(max_length=255)
grade = models.ForeignKey(grade, on_delete=models.CASCADE)
rollno = models.BigIntegerField()
我不太清楚如何添加这个功能。 谢谢
您需要向模型中添加一个元类
你的学生模型应该是这样的:
关于django模型的元选项的文档在这里:https://docs.djangoproject.com/en/2.1/ref/models/options/#unique-together
它们真的很有用
顺便说一句,在变量名中使用下划线和全字是惯例。您应该考虑将
rollno
更改为roll_number
您需要在meta类中使用
unique_together
提供详细文档here
相关问题 更多 >
编程相关推荐