我有我需要渲染的「帖子」列表。對於每篇文章,我必須執行三個過濾器查詢集合,或將它們組合在一起,然後計算對象的數量。這是否合理?什麼因素可能會使這種緩慢?`count`調用Django查詢集有多昂貴?
這大致是我的代碼:
def viewable_posts(request, post):
private_posts = post.replies.filter(permissions=Post.PRIVATE, author_profile=request.user.user_profile).order_by('-modified_date')
community_posts = post.replies.filter(permissions=Post.COMMUNITY, author_profile__in=request.user.user_profile.following.all()).order_by('-modified_date')
public_posts = post.replies.filter(permissions=Post.PUBLIC).order_by('-modified_date')
mixed_posts = private_posts | community_posts | public_posts
return mixed_posts
def viewable_posts_count(request, post):
return viewable_posts(request, post).count()
請張貼一些代碼:模型,查詢。 「慢」是一個索引,到數據庫往返的問題,從數據庫到網絡服務器的數據量有多少等。這是非常具體的 –
錯誤,我大致添加了視圖代碼。我認爲這個模型非常明顯。 – personjerry