Como combinar ou como mesclar
querysets (2 ou mais) em apenas um elemento?
from itertools import chain
lista_final = list(chain(primeira_queryset, segunda_queryset))
Usar o método
chain do
itertools é mais rápido do que fazer um loop em cada um e apendar em outra lista. Por que ele é mais rápido? Como quase tudo em python, se há um método que faz mais rápido, muito provavelmente é por ter sido implementado em C. Não é diferente aqui, é mais rápido por ser implementado em C.
Agora, caso você queira que a lista final tenha um ordem comum às
querysets, você pode trabalhar com uma
lambda dentro de um
sorted() combinada ao
chain().
lista_final = sorted(
chain(primeira_queryset, segunda_queryset),
key=lambda instance: instance.data_criacao)
Se você está com Python 2.4 ou superior, usar attrgetter como alternativa ao uso de lambda.
from operator import attrgetter
lista_final = sorted(
chain(primeira_queryset, segunda_queryset),
key=attrgetter('data_criacao'))
fonte