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

Ebr*_*ata 6 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=models.Q(a__is_pure=True),
                name="a_is_pure"
            )
        ]
Run Code Online (Sandbox Code Playgroud)

我想添加一个约束,即任何 B 实例都不能引用其is_pure字段为 False 的 A 实例。当我添加上述代码、进行迁移并尝试迁移时,出现以下错误:

(models.E041) 'constraints' refers to the joined field 'a__is_pure'.

Django 目前支持这样的东西吗?如果没有,你有什么推荐?