Получить первый объект из каждого типа в запросе 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)
Этот новый_список содержит последний объект или каждый тип.