2017-02-14 61 views
1

models.py:限量查看帖子在Django ORM

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 
+0

你试过了什么? –

+0

@ShivkumarKondi我不知道它是怎么做到的?我想到了annote,但我想通过'created_date'发布orderby,但是我必须限制每个用户的帖子...... – Siyanew

回答

0

也许并不是最佳的解决方案,但这样的事情应该达到什么样的你正在尝试做的。

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

执行此查询需要很长时间。我用postgres中的row_number解决它,但不幸的是Django orm没有它。 – Siyanew