我有一些事件记录,我存储了一些广告公司的用户观点数据。 我需要获取一个广告列表,其中查看了此列表中每个广告的用户和最后查看日期。 换句话说,如果我有三行:
id | advertisement_id | user_id | datetime |
1 | 1 | 1 | 03.06.2014 |
2 | 1 | 1 | 04.06.2014 |
3 | 2 | 1 | 05.06.2014 |
我需要选择第二和第三行。 我想这应该是这样的:
user_campaigns = AdvertShowEvent.objects.filter(user=user).values_list('id', flat=True).distinct().latest('datetime')
但它不起作用。 我怎么能用Django ORM来降低它?
答案 0 :(得分:1)
我认为应该是这样的
AdvertShowEvent.objects.filter(user=user).values('advertisement').annotate(Max('datetime'), id=MAX('id')).values_list('id', flat=True)