Django:得到两个相乘列的聚合值

yed*_*tko 7 django django-orm django-aggregation

我需要得到两列的聚合值.所以首先将它们组合在一起然后得到它们sum().下面的代码自然不起作用,只是为了澄清.

它是否可能或我应该使用原始SQL?

SomeModel.objects
    .filter(**something)
    .aggregate(Sum('one_column' * 'another_col'))
Run Code Online (Sandbox Code Playgroud)

rin*_*nti 10

使用extra()不需要那么多原始SQL .

obj = SomeModel.objects.filter(**something).extra(
    select = {'total': 'SUM(one_column * another_column)'},
)
Run Code Online (Sandbox Code Playgroud)