Получить первый объект из каждого типа в запросе Django

У меня такой запрос:

objs = MyModel.objects.filter(type__in=[1,2,3,4]).order_by('-created_at')

есть ли способ получить только первый элемент каждого типа, а не все элементы с этими типами, добавив условие к этому запросу?

Да, есть ручной способ.

type_list = [1,2,3,4]
new_list = []

for each_type in type_list:
    latest_obj = MyModel.objects.filter(type=each_type).order_by('-created_at').first()
    new_list.append(latest_obj)

Этот новый_список содержит последний объект или каждый тип.

Вернуться на верх