【问题标题】:How do I multiply values in a query set in django correctly如何正确地将 django 中的查询集中的值相乘
【发布时间】:2018-02-23 09:47:31
【问题描述】:

我想将queryset 中的两个值相乘,我该如何实现: 这就是我所拥有的:

def get_adjustment(self):
        Adjustment.objects.filter(employee_month_id=1,adjustment_type=2)
        .values('exchange_rate','amount').aggregate(Sum('amount', field="exchange_rate*amount") 

【问题讨论】:

    标签: django python-3.x django-rest-framework


    【解决方案1】:

    您需要使用F() 对象。

    .values('exchange_rate','amount').aggregate(Sum(F('amount') * F('exchange_rate')))
    

    请参阅query expressions 文档。

    【讨论】:

      【解决方案2】:

      obj = SomeModel.objects.filter(**something).extra( 选择 = {'total': 'SUM(one_column * another_column)'}, )

      Adjustment.objects.filter(employee_month_id=1,adjustment_type=2) .values('exchange_rate','amount').extra(select = {'total': 'SUM(exchange_rate * amount)'})

      【讨论】:

      • 文档声明“将此方法作为最后的手段”和“这是我们打算弃用的旧 API”。
      猜你喜欢
      • 2017-11-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2020-04-29
      • 2021-11-25
      • 2012-05-01
      • 1970-01-01
      相关资源
      最近更新 更多