我有两个 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 实例都不能引用其
is_pure
字段为 False 的 A 实例。
当我添加上述代码、进行迁移并尝试迁移时,出现此错误:
(models.E041) 'constraints' refers to the joined field 'a__is_pure'.
Django 目前支持这样的东西吗?如果没有,你有什么推荐?
在模型约束中,只能引用模型本身的字段。 如果要引用ForeignKey模型的字段,可以重写clean()方法。 您可以在此处查看示例:https://stackoverflow.com/a/75640733/20712534