我正在使用Django编写一个Web应用程序,并想知道是否有可能在模型中有一个BooleanField,其值将基于同一模型中的其他BooleanFields。
基本上,只有当模型中的所有其他BooleanField都为True时,我才希望模型中的一个BooleanField为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)
如果booleanB和booleanC以及booleanD为True,我希望booleanA为True。
我没有找到任何关于此的信息,所以如果有人知道是否有解决方案,这将是很好的。
感谢。
答案 0 :(得分:0)
您可以覆盖模型的保存方法。
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)
答案 1 :(得分:0)
您可以覆盖模型的保存方法。就像这样。
def save(self, *args, **kwargs):
self.booleanA = self.booleanB and self.booleanC and self.booleanD
return super(ModelEx, self).save(*args, **kwargs)