django - 查询 - 用户最近的条目

时间:2010-03-08 17:35:48

标签: django

这是我的模特


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 |

我该怎么做?

谢谢!

1 个答案:

答案 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)