Если у меня есть данные, которые похожи на:
id | value | m2m__created | m2m__value
---+-------+--------------+-----------
1 | 10 | 2020-03-14 | 0
1 | 10 | 2020-03-21 | 5
2 | 20 | 2020-03-14 | 10
3 | 30 | 2020-03-14 | 20
, что я хочу после фильтрации:
id | value | m2m__created | m2m__value
---+-------+--------------+-----------
1 | 10 | 2020-03-21 | 5
2 | 20 | 2020-03-14 | 10
3 | 30 | 2020-03-14 | 20
Я пытаюсь использовать что-то вроде этого:
Foo.objects.filter(
foo_m2m__created__lte=start_date,
).order_by(
'id',
'-foo_m2m__created',
).annotate(
recently_created=Max('foo_m2m__created'),
).values(
'id',
'value',
'foo_m2m__created',
'foo_m2m__value',
)
К сожалению, я получаю следующее:
id | value | m2m__created | m2m__value
---+-------+--------------+-----------
1 | 10 | 2020-03-14 | 0
2 | 20 | 2020-03-14 | 10
3 | 30 | 2020-03-14 | 20
Я попытался добавить еще один .filter(foo_m2m__created=F('recently_created'))
после аннотации, но происходит то же самое.