这是我的模特
class gameUserTrophyInfo(models.Model):
user = models.ForeignKey(userInfo)
trophy = models.ForeignKey(gameTrophyInfo)
date = models.DateTimeField()
我想要一个返回给我的查询:对于所有用户,返回最近的奖杯。
示例:
我的数据库:
日期(日 - 月 - 年)
| user | trophy | date |
| 1 | 1 | 10-10-10 10:00:00 |
| 1 | 2 | 10-10-10 09:00:00 |
| 2 | 1 | 10-10-10 01:00:00 |
| 2 | 2 | 11-10-10 01:00:00 |
| 3 | 10 | 20-10-10 01:00:00 |
返回:
| user | trophy | date |
| 1 | 1 | 10-10-10 10:00:00 |
| 2 | 2 | 11-10-10 01:00:00 |
| 3 | 10 | 20-10-10 01:00:00 |
我该怎么做?
谢谢!
答案 0 :(得分:2)
您需要两个查询:
users = User.objects.annotate(max_trophy_info_id=Max('gameusertrophyinfo__id'))
ids = [user.max_trophy_info_id for user in users]
trophy_infos = gameUserTrophyInfo.objects.filter(id__in = ids)