gpt4 book ai didi

Django带除法的注释计数返回整数而不是 float

转载 作者:行者123 更新时间:2023-12-04 17:44:22 25 4
gpt4 key购买 nike

我有很多物体,其中3个物体的名称为“AAA”

我将它们按“名称”分组并在组中注释num:

my_models = MyModel.objects.order_by('name').values('name').annotate(count=Count('name'))

for i in my_models:
print(i.count, i.name)

我得到:
3, 'AAA'
1, 'BBB'
...

一切都很好,但是当我尝试添加一些公式来注释Count()时:
my_models = MyModel.objects.order_by('name').values('name').annotate(count=Count('name') / 2)

我得到:
1, 'AAA'
0, 'BBB'
...

但预期:
1.5, 'AAA'
0.5, 'BBB'
...

编辑:

通过Django的ORM,Python部门不同于SQL部门,
所以python 3中的2/1返回2.0-确定,但是在SQL中却不

最佳答案

@Alasdair's comment之后的完整答案:

from django.db.models import FloatField
from django.db.models.functions import Cast

qs = MyModel.objects.order_by('name').values('name').annotate(
count=Cast(Count('name') / 2.0, FloatField()))

关于Django带除法的注释计数返回整数而不是 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41091635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com