首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向.aggregate()喂食**kwargs

向.aggregate()喂食**kwargs
EN

Stack Overflow用户
提问于 2017-01-29 13:15:30
回答 1查看 231关注 0票数 0

有可能做这样的事吗?

代码语言:javascript
复制
outputs = {"total_kgs": "kgs"}
Model.objects.all().aggregate(**outputs)

代替:

代码语言:javascript
复制
Model.objects.all().aggregate(total_kgs="kgs")

现在我得到了:

AttributeError:'str‘对象没有属性'resolve_expression’

以下是我目前正在努力做的事情:

InventoryManager级(经理):

代码语言:javascript
复制
def lookup(self, operators, fields, status, labels=None):
    outputs = {}

    if status == "unsold":
        operators.update({"status__lt": choices.SOLD})

    q = [Q(**operators)]

    for field in fields:
        label = labels.pop(0) if labels else "{}_total".format(field)
        outputs.update({label: field})

    return self.model.objects.filter(reduce(operator.and_, q)).aggregate(**outputs)

def total_kgs(self, status='unsold'):

    operators = {"supplier__market__weights": "KGS"}
    operators.update({'supplier__market__currency_code':"INR"})
    return self.lookup(operators, ["weight", "invoice_value"], status)

相关示范数据:

代码语言:javascript
复制
class Purchase(models.Model):
    invoice = models.CharField(max_length=24, unique=True)
    lbs = models.DecimalField(decimal_places=4, max_digits=48, blank=True, null=True)
    kgs = models.DecimalField(decimal_places=4, max_digits=48, blank=True, null=True)
    invoice_value = models.DecimalField(decimal_places=4, max_digits=48, blank=True, null=True)
    status = models.IntegerField(choices=choices.STATUS_CHOICES, default=choices.PENDING)

最后,我想对每个查询做些什么:

代码语言:javascript
复制
self.model.objects.filter(reduce(operator.and_, q)).aggregate(total_weight=Coalesce(Sum("weight"), 0))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-29 16:18:56

所以你知道了。如果插入正确的表达式,它就能正常工作。再次感谢。

代码语言:javascript
复制
for field in fields:
    label = labels.pop(0) if labels else "{}_total".format(field)
    outputs.update({label: Coalesce(Sum(field), 0)})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41921301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档