How to combine two or more QuerySets from different models and order objects chronologically?

I have two querysets I need to combine and iterate through the objects chronologically, based on a datetime field which is common to both models. What is the best way to do that ?

I’m able to combine querysets with union but objects are not sorted properly.

model_combination = model_set1.union(model_set2, all=True)

>Solution :

According to the documentation, order_by is supported by union. Try like this:

model_combination = model_set1.union(model_set2, all=True).order_by('datetime_field')

Leave a Reply