我正在尝试找到一种方法,可以对模型中两个字段相加的注释进行操作。例如:
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')
上面的方法不起作用,并出现错误“无法将关键字'total_amount'解析为字段”。
我已经尝试了这里所示的解决方案:在Django查询中使用.extra(select={...})引入的值上使用.aggregate(),但仍然没有成功,仍然会得到“无法将关键字'total_amount'解析为字段”的错误。
除了在原始SQL中执行查询,因为传递的查询字符串可能已经执行了各种过滤和排除操作,使得这个前景有点复杂之外,还有其他方法吗?我也试图避免将字段添加到实际模型中,并在保存期间计算其值,除非这是唯一的方法。