2016-04-14 3 views
0

У меня есть следующие два QuerySetsОбъединить и сумма отсчетов двух аннотировать DJANGO

movies_actor=[<Movie: DJango>, <Movie: Paloma de papel>, <Movie: Asu Mare: la película>, <Movie: Mariposa negra>, <Movie: Mañana te cuento>, <Movie: No se lo digas a nadie>] 

movies_genres=[<Movie: Dias de Santiago>, <Movie: Ciudad M>, <Movie: DJango>, <Movie: Mariposa negra>, <Movie: No se lo digas a nadie>, <Movie: La Gran Sangre: La Pelicula>, <Movie: La Ciudad y Los Perros>, <Movie: Paloma de papel>] 

Каждый элемент из двух наборов запроса имеет счетчик атрибута. Например movie_actor [0] .counter = 2. Мне нужно объединить и суммировать этот атрибут в другом QuerySet. Не могли бы вы помочь мне получить это, пожалуйста?

+0

Что вы подразумеваете под слиянием? Можете ли вы быть более ясными? Пример действительно поможет –

+0

Похоже, вы можете попробовать этот ответ http://stackoverflow.com/a/4412293/1816414 –

ответ

-1

вы можете использовать Aggregation:

sum_movies_actor = movies_actor.aggregate(Sum('counter')) 
sum_movies = movies.aggregate(Sum('counter')) 
total = sum_movies_actor['counter__sum'] + sum_movies['counter__sum'] 
0

После this answer вы могли бы сначала объединить ваши querysets:

merged_queryset = movies_actor | movies_genres 

, а затем сделать агрегацию:

total = merged_queryset.agggregate(Sum('counter')) 

Я пытался его похожие модели на Django 1.8 и он отлично работает.

Смежные вопросы