我有以下模型:
class MeasurementParameter(models.Model):
tolerance = models.FloatField()
set_value = models.FloatField()
tol_low = None
tol_high = None
def tolerance_band(self):
tol = self.set_value * self.tolerance/100
self.tol_high = self.set_value + tol
self.tol_low = self.set_value - tol
print self.tol_low
return self.tol_high, self.tol_low
Run Code Online (Sandbox Code Playgroud)
我希望使用tolerance_band 方法设置计算出的局部变量 tol_low 和 tol_high 。
该模型与另一个名为 Product 的模型具有 ManyToMany 关系。
class Product(models.Model):
name = models.CharField(max_length=100)
description = models.CharField(max_length=1000)
parameters = models.ManyToManyField(MeasurementParameter, related_name='measurement')
def calc_all_tol_bands(self):
for parameter in self.parameters.all():
hi, lo = parameter.tolerance_band()
def __str__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
因此,在我看来,我尝试通过以下方式计算所有公差带:
product.calc_all_tol_bands()
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试获取局部变量:
product.parameters.all()[0].tol_low
Run Code Online (Sandbox Code Playgroud)
我一直都没有。
我需要做什么才能在 …