输出计算到模板

时间:2017-08-31 10:56:25

标签: django django-templates django-views

我想在模型上执行行级数学运算并在模板中显示结果。每天每个公司都有一行数据库。

class MyModel(models.Model):
    company = model.CharField(...
    daily_target = model.PositiveSmallIntger(...
    actual =  model.PositiveSmallIntger(...
    date = model.DateField(...

在模板中,我想显示登录公司的100 * actual / daily_target的结果。我在python解释器中执行此操作没有问题,但我对如何使用视图&模板。

1 个答案:

答案 0 :(得分:1)

您可以向模型添加属性:

class MyModel(models.Model):
    company = model.CharField(...
    daily_target = model.PositiveSmallIntger(...
    actual =  model.PositiveSmallIntger(...
    ...

    @property
    def pct_target(self):
        return 100. * self.actual / self.daily_target

然后在你的模板中:

{% for item in queryset %}
    {{ item.pct_target }}
{% endfor %}

这样做的缺点是您无法通过属性过滤或排序查询集。另一个选项是使用计算字段annotate您的查询集。