Django 约束:如果外键为空,则字段必须为真
Django constraints: if foreignkey is empty, then field must be true
我正在阅读 Django 的 documentation on CheckConstraint 以避免覆盖 .save() 方法来实现此行为:
MyModel(models.Model):
user = models.ForeignKey(User, null=True)
is_default = models.BooleanField()
if m.user is None and m.is_default -> valid
if m.user is None and not m.is_default -> invalid
if m.user is not None and m.is_default -> invalid
if m.user is not None and not m.is_default -> valid
基本上,我希望 is_default 只有在分配了用户时才为真。
我可以使用 CheckConstraint
执行此操作还是我必须重写 .save() 方法?
models.CheckConstraint(
check=(models.Q(is_default=True, user__isnull=True) | models.Q(is_default=False, user__isnull=False)),
name='...')
我正在阅读 Django 的 documentation on CheckConstraint 以避免覆盖 .save() 方法来实现此行为:
MyModel(models.Model):
user = models.ForeignKey(User, null=True)
is_default = models.BooleanField()
if m.user is None and m.is_default -> valid
if m.user is None and not m.is_default -> invalid
if m.user is not None and m.is_default -> invalid
if m.user is not None and not m.is_default -> valid
基本上,我希望 is_default 只有在分配了用户时才为真。
我可以使用 CheckConstraint
执行此操作还是我必须重写 .save() 方法?
models.CheckConstraint(
check=(models.Q(is_default=True, user__isnull=True) | models.Q(is_default=False, user__isnull=False)),
name='...')