基于多列的Django注释

时间:2013-11-25 15:36:13

标签: python django

所以在docs中有以下注释示例:

Book.objects.annotate(Count('authors'))

然后允许您根据作者的数量进行排序等有趣的事情。我想做以下事情:

Example.objects.annotate(value=sum('column1','column2','column5'))

现在当然这不起作用,但它显示了我想要的:添加value,它是第一,第二和第五列中一行中数字的sum

如何根据每行中的多个列值进行注释?

1 个答案:

答案 0 :(得分:1)

以下是使用extra

执行此操作的方法
Example.objects.extra(select={'value': 'column1 + column2 + column3'})

要过滤,我相信您需要使用重复数学的where子句:

Example.objects.extra(select={'value': 'column1 + column2 + column3'},
                      where=['(column1 + column2 + column3) >= %s'],
                      params=[100])

或者任何合适的逻辑。