将函数作为 Django 模型上的字段返回

mar*_*lhc 2 django django-templates django-models

我有一个模型,它有一个函数来计算两个字段之间的差异示例:

Class MyModel(models.Model):
    fieldA = models.FloatField()
    fieldB = models.FloatField()

    def delta(self):
        return self.fieldA - self.fieldB
Run Code Online (Sandbox Code Playgroud)

我想在 GenericView 中使用这个模型。我可以使用函数 delta 作为 extraContext 但我也喜欢在模板中包含所有 Delta 结果的总和,在这种情况下,我必须进行聚合,但再次因为 delta 既不是数据库字段也不是模型字段我不能使用它在一个聚合函数中。

怎样才能做到这一点?

小智 5

你试过吗?

Class MyModel(models.Model):
    fieldA = models.FloatField()
    fieldB = models.FloatField()

def __delta(self):
    return self.fieldA - self.fieldB

delta = property(__delta)
Run Code Online (Sandbox Code Playgroud)