当我尝试创建一个在使用子模型之前创建子模型的模型时,我不断收到错误消息:类'decimal.DivisionUndefined'。我不明白为什么会引发此错误或如何解决该错误。
class Parent(models.Model):
title = models.CharField(max_length=200, unique=True)
description = models.TextField()
sub_value1: DecimalField = models.DecimalField(max_digits=11, decimal_places=2, null=True)
class Meta:
@property
def children(self):
children = []
for child in Child.objects.all():
if child.parent_id == self.id:
children.append(child)
return children
@property
def main_value(self):
try:
main_value = self.sub_value1 / self.sub_value2
return round(main_value, 2)
except ZeroDivisionError:
return 0
except TypeError:
return None
@property
def sub_value2(self):
local_sub_value2 = 0
for child in self.children:
local_sub_value2 += child.sub_value_2_of_child
return round(local_sub_value_2, 2)
当我创建尚未创建任何子代的模型时,我希望children属性返回一个空数组。因此sub_value2应该为0,因此main_value应该引发我正在处理的ZeroDivisionError。
但是,我不断从django中收到以下错误消息:
[<class 'decimal.DivisionUndefined'>]
为什么会发生这种情况,我该如何解决?