models.BooleanField解释为整数

时间:2014-03-04 00:22:29

标签: django

如何将布尔(或'')解释为整数0或1?总数可以是0,1或2,具体取决于uno和dos的值。

class foo(models.Model)
    uno  = models.BooleanField()
    dos  = models.BooleanField()
    total = models.PositiveSmallIntegerField(blank=True, default=int(0))
    def save(self, *args, **kwargs):
        # HUMDINGER....
        self.total = int(self.uno) + int(self.dos)
        super(Survey, self).save(*args, **kwargs) # Call the "real" save() method.

这是该行投掷的错误......

invalid literal for int() with base 10: ''

1 个答案:

答案 0 :(得分:0)

我很惊讶你的BooleanFields有空字符串作为它们的值。无论如何,由于布尔值在数值上下文中评估为01,您可以这样做:

self.total = bool(self.uno) + bool(self.dos)