Python 为Django模型中的相关对象字段添加CheckConstraint

Python 为Django模型中的相关对象字段添加CheckConstraint,python,django,django-models,Python,Django,Django Models,我有两种Django型号: class A(models.Model): is_pure = models.BooleanField() class B(models.Model): a = models.ForeignKey(A, on_delete=models.CASCADE) class Meta: constraints = [ models.CheckConstraint( check

我有两种Django型号:

class A(models.Model):
    is_pure = models.BooleanField()

class B(models.Model):
    a = models.ForeignKey(A, on_delete=models.CASCADE)

    class Meta:
        constraints = [
            models.CheckConstraint(
                check=models.Q(a__is_pure=True),
                name="a_is_pure"
            )
        ]
我想添加一个约束,即任何B实例都不能引用其
为\u pure
字段为False的a实例。 当我添加上述代码、进行迁移并尝试迁移时,会出现以下错误:

(models.E041)'constraints'指的是联接字段'a_u是纯的。


Django目前支持这样的东西吗?如果没有,您有什么建议?

似乎您必须在Django之外将其作为触发器来实现: