Получить дату последнего элемента, в котором поле элемента_1 и поле элемента_2 имеют дубликаты
Я использую Django 4.0 и Python 3.8.
У меня есть продукт, который имеет дату модификации, имя отдела и обозначение.
Я хочу получить каждый продукт, но для продуктов, имеющих одинаковое обозначение и одинаковый отдел, я хочу получить только последнюю запись.
Вот что я имею сейчас:
`
products = Product.objects.all().order_by('designation')
`
Я пробовал сортировать по результату и удалять дубликаты строк, это сработало для 10 строк, но для 100 он мертв
Для следующих данных:
элемент: обозначение, дата, отдел
- пункт_1, 01/01/1970, отдел_1
- пункт_2, 01/01/1970, отдел_2
- пункт_3, 01/01/1970, отдел_3
- пункт_1, 01/02/1970, отдел_1
Я хочу:
- пункт_1, 01/02/1970, отдел_1
- пункт_2, 01/01/1970, отдел_2
- пункт_3, 01/01/1970, отдел_3
Есть ли у вас совет, пожалуйста?
Если вы используете базу данных PostgreSQL, используйте метод distinct()
для вашего QuerySet (ссылка на документацию Django), чтобы "исключить дубликаты строк из результатов запроса".
В вашем случае:
products = Product.objects.all().order_by('designation', 'department').distinct('designation', 'department')
Если вы используете другую базу данных, вы можете использовать distinct()
также, но без передачи позиционных аргументов (*fields
).