Reputation: 189
I have a table like this
Event table
id | status | date | order(FK) |
---|---|---|---|
1 | Planned | 05-02-2015 | 1 |
2 | Delivered | 04-02-2015 | 2 |
3 | Packed | 03-02-2015 | 3 |
4 | Return | 06-02-2015 | 1 |
I want output like this
id | status | date | order(FK) |
---|---|---|---|
2 | Delivered | 04-02-2015 | 2 |
3 | Packed | 03-02-2015 | 3 |
4 | Return | 06-02-2015 | 1 |
I tried with
query = Event.objects.annotate(order_num=Max('date'))
but didn't get the expected result. How can I achieve this output?
Upvotes: 4
Views: 2666
Reputation: 6096
Try using the following:
from django.db.models import Max
Event.objects.annotate(max_date=Max('order__event__date')) \
.filter(date=F('max_date'))
Upvotes: 10