一尘不染

减去两个带注释的列

python

我需要能够对两个带注释的列进行汇总

所以我想做这样的事情:

c = c.annotate(metric=Sum('results__metric'))
c = c.annotate(metric_prior=Sum('results__metric_prior'))
c = c.annotate(variance=F('metric')-F('metric_prior')) #doesn't work, for demonstrative purposes only

接着:

c = c.order_by('variance')

有谁知道如何完成上述工作?


阅读 120

收藏
2021-01-20

共1个答案

一尘不染

其实,

c = c.annotate(variance=F('metric')-F('metric_prior'))

从Django
1.8开始
就可以正常工作了

此外,您还可以按表达式排序,这意味着您可以使用:

c = c.order_by(F('metric') - F('metric_prior'))

甚至只是:

c = c.order_by(Sum('results__metric') - Sum('results__metric_prior'))
2021-01-20