结合相同型号Django的2个对象

时间:2018-04-26 22:46:48

标签: django django-models django-queryset django-annotate

有没有办法将同一模型的2个以上对象与所有字段的总值合并/合并为1。

我的意思是Author.objects.annotate(Sum('book__pages')),但是对于模型中的所有字段。

1个对象 - {'user':2, 'events':20, 'time': 233}

2个对象 - {'user':2, 'events':10, 'time': 400}

需要总计 - {'user':2, 'events':30, 'time': 633}

THX

1 个答案:

答案 0 :(得分:1)

您可以使用values()然后使用annotate()

MyModel.objects.values('user').annotate(
    total_events=Sum('events'),
    total_time=Sum('time'),
)

有关详细信息,请参阅Django docs