2011-09-20 27 views
0

我在Django有一個查詢導致獨特的行,但一些包含在各個領域的共同價值觀。我想整合這些行與共同的價值觀。 例如: 假設每一行都返回一個id,庫,書名,作者,出版日期。 我只想知道書名,作者和出版日期。另外,我想了解一下1,並且只有一個庫可以找到它。如何如此使用Django?Django - 如何過濾查詢中的重複項?

回答

2

你能試試這個:

Books.objects.all().only('title', 'author', 'date').extra(where=['library IS NOT NULL']).distinct() 
+0

我沒有看到它的結果。 '.extra(where = ['library IS NOT NULL'])''的目的是什麼? –

+0

而且,顯然,即使Django被明確告知標題,作者和日期 - 它也包括主鍵! –

+0

你可以使用.filter(...)。values('title','author','date')。distinct() 我還沒有試過這個,告訴我它是不是工作,我今晚會這樣做。 – spicavigo

0

有可能您的數據模型不完整。這聽起來像是你正在試圖找到一本擁有某本書的圖書館。如果有很多圖書館擁有這本書,那麼您需要一些區分標準才能讓數據庫將圖書館列表篩選爲一個且僅有一個。否則,如果你真的不在意,請考慮使用limit方法。

myquery.limit(1) 
+0

更改爲MyQuery檢索大量_could possibly_包括重複​​_book標題,作者,出版DATE_行。我認爲limit()在那裏不起作用。 –