2017-02-14 25 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