通过汇总Django queryset中'values_list'的结果来生成列表

时间:2016-12-03 09:30:25

标签: python django

通过Django queryset调用,我正在生成一个整数元组列表:

[(0,1),(0,2),(0,4),(5,8),.......]

我需要生成一个列表,它将元组内的两个元素加在一起,即

[1,2,4,13,.....]

如何在Django查询集查询中实现这一目标?

到目前为止我写的查询是:

photos_score_list = Photo.objects.filter(upload_time__gte=yesterday).annotate(unique_comments=Count('photocomment__submitted_by', distinct=True)).values_list('vote_score','unique_comments')

1 个答案:

答案 0 :(得分:1)

我不知道Django,但是当你有这个时:

l = [(0,1),(0,2),(0,4),(5,8)]

您可以使用列表推导计算一行中每个元素的总和:

l2 = [sum(x) for x in l]

结果:

[1, 2, 4, 13]

适用于您的问题:

photos_score_sum = [sum(x) for x in Photo.objects.filter(upload_time__gte=yesterday).annotate(unique_comments=Count('photocomment__submitted_by', distinct=True)).values_list('vote_score','unique_comments')]