Joh*_*ohn 11 django annotations aggregation extra
我正在尝试找到一种方法来对添加在一起的模型上的两个字段进行注释.就像是:
total_done = qs.values(
'ability__ability_name',
).extra(
select={
'total_amount': 'effective_value + overage',
}
).annotate(
total=Sum('total_amount'),
).values(
'ability__ability_name', 'total_amount'
).order_by('-total_amount')
Run Code Online (Sandbox Code Playgroud)
以上不起作用并产生错误"无法将关键字'total_amount'解析为字段"我已经尝试过此处指示的解决方案:对使用.extra(select = {...})引入的值使用.aggregate()一个Django查询? 然而,没有运气仍然得到"无法解析关键字'total_amount'到字段"
除了在原始sql中执行查询之外的任何其他内容都可以使用各种过滤器,并且已经对其进行了排除,使得该前景变得有点复杂.我也试图避免将字段添加到实际模型中并在保存期间计算它的值,除非这是唯一的方法.
尝试这样的事情:
total_done = qs.extra(select = {'total_amount': 'SUM(one_column + another_column)'}, )
Run Code Online (Sandbox Code Playgroud)