Получить дату последнего элемента, в котором поле элемента_1 и поле элемента_2 имеют дубликаты

Я использую Django 4.0 и Python 3.8.

У меня есть продукт, который имеет дату модификации, имя отдела и обозначение.

Я хочу получить каждый продукт, но для продуктов, имеющих одинаковое обозначение и одинаковый отдел, я хочу получить только последнюю запись.

Вот что я имею сейчас:

`

products = Product.objects.all().order_by('designation')

`

Я пробовал сортировать по результату и удалять дубликаты строк, это сработало для 10 строк, но для 100 он мертв

Для следующих данных:

элемент: обозначение, дата, отдел

  1. пункт_1, 01/01/1970, отдел_1
  2. пункт_2, 01/01/1970, отдел_2
  3. пункт_3, 01/01/1970, отдел_3
  4. пункт_1, 01/02/1970, отдел_1

Я хочу:

  1. пункт_1, 01/02/1970, отдел_1
  2. пункт_2, 01/01/1970, отдел_2
  3. пункт_3, 01/01/1970, отдел_3

Есть ли у вас совет, пожалуйста?

Если вы используете базу данных PostgreSQL, используйте метод distinct() для вашего QuerySet (ссылка на документацию Django), чтобы "исключить дубликаты строк из результатов запроса".

В вашем случае:

products = Product.objects.all().order_by('designation', 'department').distinct('designation', 'department')

Если вы используете другую базу данных, вы можете использовать distinct() также, но без передачи позиционных аргументов (*fields).

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