2012-06-01 48 views
-1
out_links = Link.objects.filter(iweb=iweb_id).order_by('-pub_date') 
for link in out_links: 
    comments = LinkComment.objects.filter(link=link.id) 

Filter方法創建對象列表,所以out_links是一個列表,對嗎?python中的filter()方法django

接下來,在for循環之後,我再次過濾以通過鏈接id找到LinkComments類中的對象。

雖然問題出現了,但我指的是鏈接,因爲它會是對象或者是一個列表? 只要它是django的意見,我不確定嗎? link.idlink['id']?我的Python說[ ],但Django不起作用。

回答

0

過濾方法創建對象列表,所以out_links是一個列表, 對不對?

錯誤。它創建了QuerySet object,這也恰好是一個可迭代的。

3

的out_links是在for循環您可以到達所有LinkComments一個查詢集和:

for link in out_links: 
    comments = link.linkcomment_set.all() 
+0

如果我只想使用鏈接ID,該怎麼辦? – user1403568

+0

不知道我理解你的問題。你能澄清一下嗎? – Mikael

+0

我有一個從這個查詢集取得的鏈接對象,裏面有一個屬性(id)。我想從這個鏈接對象中刪除唯一的ID。我應該這樣做嗎? 'link.id'或'link ['id']'在這種情況下 – user1403568

1

過濾器創建一個查詢集,如文檔中解釋說:https://docs.djangoproject.com/en/dev/ref/models/querysets/#methods-that-return-new-querysets

如果標a查詢集,像comments[n],你會得到第n個成員(就像你用列表一樣)。你有一個order_by的地方,那是按該條款指定的順序。您無法使用下標表示法通過標識進行查詢。

當您遍歷QuerySet時,您將獲得queryset的成員,它們是python模型對象,您可以像處理代碼中的其他任何地方一樣對待它們。