【发布时间】:2020-03-16 06:09:52
【问题描述】:
如果我有模型,请说:
class User(models.Model):
name = ...
dob = ...
class Event(models.Model):
user = models.ForeignKey(User, ...)
timestamp = models.DateTimeField()
我想查询所有用户并使用 Count of events 和 MAX of Events.timestamp 进行注释
我知道我能做到:
Users.objects.all().annotate(event_count=models.Count('event_set'))
但是我如何做一个相关的查询集字段的最大值?我希望它是一个查询,例如:
SELECT Users.*, MAX(Events.timestamp), COUNT(Events) FROM 用户在 Users.id = Events.user_id 上加入事件
【问题讨论】:
-
您可以在查询中使用
.annotate和.aggregate,例如Users.objects.all().annotate().annotate()
标签: python django django-orm