设置每个用户在django ORM中查看帖子的限制

设置每个用户在django ORM中查看帖子的限制,django,django-orm,Django,Django Orm,models.py: class Post(models.Model): author = models.ForeignKey('User') text = models.TextField(max_length=320) created_date = models.DateTimeField(default=timezone.now) 我想从每个用户那里获得每天只显示3篇或更少帖子的最新帖子,例如: User1 published 3 posts today. Use

models.py:

class Post(models.Model):
    author = models.ForeignKey('User')
    text = models.TextField(max_length=320)
    created_date = models.DateTimeField(default=timezone.now)
我想从每个用户那里获得每天只显示3篇或更少帖子的最新帖子,例如:

User1 published 3 posts today.
User2 published 20 posts today.
我想要一个Django ORM命令,限制每个用户每天只显示3篇文章。 此查询应获得6个帖子:

3 posts from Users1
3 posts from Users2

可能不是最佳的解决方案,但类似这样的事情应该可以实现您想要做的

posts = []
for user in User.objects.all():
    posts.append(Post.objects.filter(author=user).order_by('-created_date')[:3])

可能不是最佳的解决方案,但类似这样的事情应该可以实现您想要做的

posts = []
for user in User.objects.all():
    posts.append(Post.objects.filter(author=user).order_by('-created_date')[:3])

你试过什么?@ShivkumarKondi我不知道怎么做?我考虑过annote,但我想要orderby post by
created_date
,但我必须限制每个用户的帖子…你尝试了什么?@ShivkumarKondi我不知道怎么做?我考虑了annote,但我希望orderby post by
created\u date
,但我必须限制每个用户的帖子数量……执行此查询需要很多时间。我用postgres中的row_number来解决这个问题,但不幸的是django-orm没有,执行这个查询需要很多时间。我用postgres中的行数来解决它,但不幸的是django orm没有。