假设我有一个模型:
class Post(models.Model):
user = models.ForeignKey(User, related_name='posts')
created = models.DateTimeField(auto_now_add=True)
我想查询所有用户,并列出每个用户的今日帖子。
以下是一些很好的解决方案,例如使用模型方法或迭代每个用户,但在我看来,它们并没有真正具有良好的性能,因为它们不使用ORM。
也许有任何方式像User.objects.all().annotate(filtered_posts = ...)
?
答案 0 :(得分:0)
你说你想查询"今天的帖子"但是我没有看到日期时间段,所以我假设一个。此外,您需要更改相关名称(它从其他模型角度描述名称,因此:related_name='posts'
更合适。)
您可以在__
查询时访问相关对象,例如
User.objects.filter(posts__created=time)
这将返回包含今天发布的帖子的用户的查询集。
请注意,我用作示例的time
变量是另一回事。例如,您可能希望使用posts__created_at__range
提供今天午夜至明天午夜的2元素元组。