gpt4 book ai didi

Django - 注释多个 Sum() 对象会给出错误的结果

转载 作者:行者123 更新时间:2023-12-01 08:34:46 25 4
gpt4 key购买 nike

模型.py 看起来像这样

class Channel(Model):
name = CharField()

class Contract(Model):
channel = ForeignKey(Channel, related_name='contracts')
fee = IntegerField()

class ContractPayment(Model):
contract = ForeignKey(Contract, related_name='payments')
value = IntegerField()

当我查询模型时:
Channel.objects.annotate(pay=Sum('contracts__fee'))
它返回: 75000 .它是正确的,但是当我这样查询时:
Channel.objects.annotate(pay=Sum('contracts__fee'))
.annotate(paid=Sum('contracts__payments__value'))

它返回: 支付:96000,支付:33000 .如您所见 支付 被改变。这里发生了什么?我看了票 #10060但没有运气。

最佳答案

使用两个查询来获得所需的结果:

Channel.objects.annotate(pay=Sum('contracts__fee'))


Channel.objects.annotate(paid=Sum('contracts__payments__value'))

关于Django - 注释多个 Sum() 对象会给出错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60631135/

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