【发布时间】:2019-10-12 09:10:59
【问题描述】:
我正在使用 Django,我正在对某些列值取平均值,但是结果被四舍五入,我想将其设为小数点后一位或两位。我的目标是看到结果看起来像 3.5 而不是 4。
我的模型被命名为 Application 并且列具有 IntegerField 模型类型。我的数据库是 PostgreSQL。
这是我当前用于获取列值平均值的查询:
ratings = Application.objects.filter(id = review.id).annotate(rate = (F('col_1')+F('col_2')+F('col_3')+F('col_4')+F('col_5')+F('col_6'))/6)
我已经尝试过使用FloatFields,但也许我做错了。
有什么建议吗?
提前致谢!
编辑:这是我的列模型。
col_1 = models.IntegerField(choices=USER_CHOICE)
...
col_6 = models.IntegerField(choices=USER_CHOICE)
【问题讨论】:
-
可以分享模型吗?我猜
col_1等是IntegerFields? -
@WillemVanOnsem 是的!它们是整数字段。我刚刚添加了上面的模型。
标签: django postgresql orm decimal django-annotate