小编use*_*235的帖子

在 Django 模型中设置局部变量

我有以下模型:

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)

我一直都没有。

我需要做什么才能在 …

django django-models

3
推荐指数
1
解决办法
1366
查看次数

标签 统计

django ×1

django-models ×1