我想在模型上执行行级数学运算并在模板中显示结果。每天每个公司都有一行数据库。
class MyModel(models.Model):
company = model.CharField(...
daily_target = model.PositiveSmallIntger(...
actual = model.PositiveSmallIntger(...
date = model.DateField(...
在模板中,我想显示登录公司的100 * actual / daily_target的结果。我在python解释器中执行此操作没有问题,但我对如何使用视图&模板。
答案 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您的查询集。