为了账号安全,请及时绑定邮箱和手机立即绑定

定义 Django 模型约束

定义 Django 模型约束

函数式编程 2022-06-28 15:58:21
我想将约束添加到涉及对另一个模型对象的引用的模型上。在下面的代码中,我希望在 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'),

  ]

希望这可以帮助!


查看完整回答
反对 回复 2022-06-28
  • 1 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号