设置每个用户在django ORM中查看帖子的限制
models.py:设置每个用户在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
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 bycreated\u date
,但我必须限制每个用户的帖子数量……执行此查询需要很多时间。我用postgres中的row_number来解决这个问题,但不幸的是django-orm没有,执行这个查询需要很多时间。我用postgres中的行数来解决它,但不幸的是django orm没有。