Python - Django - 模型 BooleanField 依赖于同一模型中的其他 BooleanField
Python - Django - Model BooleanField Dependent On Other BooleanField In Same Model
我正在使用 Django 编写 Web 应用程序,我想知道是否可以在一个模型中使用一个 BooleanField,其值将基于同一模型中的其他 BooleanField。
基本上,我希望模型中的一个布尔字段只有在模型中的所有其他布尔字段都为真时才为真。
例如,使用以下模型:
class ModelEx(models.Model):
booleanA = models.BooleanField(default=False)
booleanB = models.BooleanField(default=False)
booleanC = models.BooleanField(default=False)
booleanD = models.BooleanField(default=False)
我希望 booleanA 仅在 booleanB 和 booleanC 和 booleanD 为 True 时为 True。
我还没有找到关于此的任何信息,所以如果有人知道是否有解决方案,那就太好了。
谢谢。
您可以覆盖模型的保存方法。
class ModelEx(models.Model):
booleanA = models.BooleanField(default=False)
booleanB = models.BooleanField(default=False)
booleanC = models.BooleanField(default=False)
booleanD = models.BooleanField(default=False)
def save(self, *args, **kwargs):
self.booleanA = self.booleanA and self.booleanB and self.booleanC
return super(ModelEx, self).save(*args, **kwargs)
您可以覆盖模型的保存方法。会变成这样。
def save(self, *args, **kwargs):
self.booleanA = self.booleanB and self.booleanC and self.booleanD
return super(ModelEx, self).save(*args, **kwargs)
我正在使用 Django 编写 Web 应用程序,我想知道是否可以在一个模型中使用一个 BooleanField,其值将基于同一模型中的其他 BooleanField。
基本上,我希望模型中的一个布尔字段只有在模型中的所有其他布尔字段都为真时才为真。
例如,使用以下模型:
class ModelEx(models.Model):
booleanA = models.BooleanField(default=False)
booleanB = models.BooleanField(default=False)
booleanC = models.BooleanField(default=False)
booleanD = models.BooleanField(default=False)
我希望 booleanA 仅在 booleanB 和 booleanC 和 booleanD 为 True 时为 True。
我还没有找到关于此的任何信息,所以如果有人知道是否有解决方案,那就太好了。
谢谢。
您可以覆盖模型的保存方法。
class ModelEx(models.Model):
booleanA = models.BooleanField(default=False)
booleanB = models.BooleanField(default=False)
booleanC = models.BooleanField(default=False)
booleanD = models.BooleanField(default=False)
def save(self, *args, **kwargs):
self.booleanA = self.booleanA and self.booleanB and self.booleanC
return super(ModelEx, self).save(*args, **kwargs)
您可以覆盖模型的保存方法。会变成这样。
def save(self, *args, **kwargs):
self.booleanA = self.booleanB and self.booleanC and self.booleanD
return super(ModelEx, self).save(*args, **kwargs)