django - 在 Django 查询集中编辑注释结果
问题描述
我有一个查询集
queryset = BigTable.objects.values('field1__code', 'field2__code').annotate(Sum('field3'))
- 结果值 field3__sum = "1234567" 是一个整数,对于我的模板来说很长。
- 我怎样才能将它除以 1000(例如)并得到一个像 "1234,5" 这样的小数?
- 谢谢
解决方案
您可以将总和除以 1'000,方法是将其包装在 a 中Value(..)
:
from django.db.models import FloatField, Sum, Value
queryset = BigTable.objects.values(
'field1__code', 'field2__code'
).annotate(
field3_sum=Sum('field3', output_field=FloatField())/Value(1000, output_field=FloatField())
)
但是,最好将您的字段命名为not field3_sum
,因为这会产生错误的印象。也许你可以使用field3_sumdiv1000
例如。
|floatformat
在您的模板中,您可以使用模板过滤器 [Django-doc]进行渲染,例如:
{{ object.field3_sum|floatformat }}
推荐阅读
- node.js - Firebase nodejs admin SDK每次获取实时数据库路径的数据时都会下载数据
- amazon-web-services - AWS - IIS 和 Windows 服务以及 SQL 服务器 - 负载均衡器和高可用性
- regex - 具有修剪功能的密码策略的正则表达式
- php - 如何在单击 ajax wordpress 上创建子类别?
- python - OpenCV安装错误:没有这样的文件或目录“pyopencv_generated_include.h”
- android - Create Folder in External Android Storage (nativescript)
- android - when selected add border shape for textView and editText ,
- php - 网页是否有 pcntl_exec
- node.js - PM2 日志轮换每周配置
- mariadb - 在 Windows WSL 上将文件导入 MariaDB