定义 Django 模型约束

我想将约束添加到涉及对另一个模型对象的引用的模型上。在下面的代码中,我希望在 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'),

      ]


函数式编程
浏览 122回答 1
1回答

元芳怎么了

您可以像这样将它添加到 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'),  ]希望这可以帮助!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python