Модель фильтра Django на основе максимальной даты
У меня есть модель Drugs со следующими записями :
id location num date country
1 UC ABC 2021-03-26 ZAF
2 UC DEF 2021-03-26 ZAF # line to retrieve with filter
3 UC ABC 2021-09-06 ZAF # line to retrieve with filter
Я хочу выбрать запись на основе максимальной даты для комбинации loc - num - date
Например, в тестовом примере выше, я хочу вернуть только последние 2 записи, так как id 3 более свежий, чем id 1
from django.db.models import Max
result = Drug.objects.values('location','num').annotate(max_date=Max('date')).order_by()
Объяснение :
Из таблицы Drug
, group
строки по location
и num
(так что ряд1 и ряд3 будут сгруппированы вместе, в вашем примере), затем получить запись с Max('date')