Python - Django - 模型BooleanField依赖于同一模型中的其他BooleanField

时间:2017-02-12 17:59:51

标签: python django boolean models

我正在使用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。

我没有找到任何关于此的信息,所以如果有人知道是否有解决方案,这将是很好的。

感谢。

2 个答案:

答案 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)
相关问题