Python 在Django中执行两个带注释值的求和

Python 在Django中执行两个带注释值的求和,python,django,django-models,django-aggregation,Python,Django,Django Models,Django Aggregation,我对Student对象进行了注释,因此它有两个新字段->项目计数和成员计数,如下所示: top\u students=Student.objects.annotation(project\u count=count('project')、member\u count=count('member\u Student')) 现在,我想在数据库级别执行这两个值的求和。i、 e返回类似于: total_count = project_count + member_count 我尝试过这样使用.extr

我对Student对象进行了注释,因此它有两个新字段->项目计数和成员计数,如下所示:

top\u students=Student.objects.annotation(project\u count=count('project')、member\u count=count('member\u Student'))

现在,我想在数据库级别执行这两个值的求和。i、 e返回类似于:

total_count = project_count + member_count
我尝试过这样使用.extra():

top\u students=Student.objects.annotation(project\u count=count('project')、member\u count=count('member\u Student'))。额外(
选择={'total_count':'project_count+member_count'},
order_by=('total_count',)
)

但它显示了一个错误:
OperationalError:(1054,“字段列表”中的“项目计数”未知列)


我是否应该编写原始SQL,或者是否有其他方法可以做到这一点:

为什么需要在数据库级别执行此操作?当然,简单的添加也可以在Python中完成。只有在对整个数据集进行操作时(例如聚合本身),在数据库中进行操作才更有效率。@DanielRoseman我需要根据总计数对数据进行排序,并只返回前3项。如果它不是在数据库级别完成的,这将是一个很大的开销。