2012-07-18 171 views
0

如何在django中進行這樣的查詢。在查詢中查詢django

我有網站模型,我可以找到與主題模型的關係。在主題模型中,我可以關聯後期模型。我想從網站提取帖子,其中只有關於網站的信息,而不是主題。什麼是更多的帖子必須以查詢開始。

query = request.GET.get('query','')   
iweb_obj = IWeb.objects.get(id=iweb_id) 
topics = Topic.objects.filter(iweb=iweb_obj) 
iweb_posts = [] 

for t in topics: 
    posts = Post.objects.filter(topic=t) 

for p in posts: 
    iweb_posts.append(p)   


iweb_posts = iweb_.filter(content__istartswith=query) 

我有一個錯誤,iweb_posts isnt查詢設置,我不能做這樣的行動。這很明顯,但是我不知道如何使它工作?我聽說我可以使用過濾器(** kwargs),但我不知道如何使用它?

回答

1

由於您在topic循環中每次都覆蓋posts,所以您的邏輯看起來有點時髦。您可以使用僅查詢設置過濾器(例如,我已添加一個__in過濾器)完成您所需的沒有循環和列表的情況:例如:

query = request.GET.get('query','')   
iweb_obj = IWeb.objects.get(id=iweb_id) 
topics = Topic.objects.filter(iweb=iweb_obj) 

iweb_posts = Post.objects.filter(topic__in=topics).filter(content__istartswith=query)