我想將約束添加到涉及對另一個模型對象的引用的模型上。在下面的代碼中,我希望在 ProjectMember 模型上, project_member 字段被限制為與項目模型中的 project_creator 不同。class User(models.Model): fullname = models.CharField(max_length=200) email = models.EmailField(max_length=254) password = models.CharField(max_length=254)class Project(models.Model): name = models.CharField(max_length=200) timestamp = models.DateTimeField("date created", auto_now=True) project_creator = models.ForeignKey(User, on_delete=models.CASCADE)class ProjectMember(models.Model): project = models.ForeignKey(Project, on_delete=models.CASCADE) project_member = models.ForeignKey( User, on_delete=models.CASCADE, verbose_name="member of the project" ) class Meta: order_with_respect_to = 'user_member' constraints = [ models.CheckConstraint(check= , name='project creator not project member'), ]
1 回答

元芳怎么了
TA貢獻1798條經驗 獲得超7個贊
您可以像這樣將它添加到 Q 對象中,
class Meta:
order_with_respect_to = 'user_member'
constraints = [
models.CheckConstraint(check=~Q(project_member_id=project__project_creator_id) ,
name='project creator not project member'),
]
希望這可以幫助!
添加回答
舉報
0/150
提交
取消