我想返回利率,但在管理员 +不支持的操作数类型中出现此错误:'NoneType'和'NoneType'
class SomeModel(models.Model):
code_style_rate = models.DecimalField(max_digits=4, decimal_places=2)
decision_rate = models.DecimalField(max_digits=4, decimal_places=2)
severity_rate = models.DecimalField(max_digits=4, decimal_places=2)
@property
def rate(self):
return (self.code_style_rate + self.decision_rate + self.severity_rate) / 3
def __str__(self):
return self.rate
答案 0 :(得分:1)
首先,您可以检查对象是否为None
,然后执行计算。
@property
def rate(self):
if self.code_style_rate is not None and self.decision_rate is not None and self.severity_rate is not None:
return (self.code_style_rate + self.decision_rate + self.severity_rate) / 3
答案 1 :(得分:1)
我认为,这将是更pythonic的
class SomeModel(models.Model):
# other fields and methods
@property
def rate(self):
total = (self.code_style_rate or 0) + (self.decision_rate or 0) + (self.severity_rate or 0)
return total / 3