我想要做的是編寫一個查詢集,過濾出獨特的父/名組合。我只對第一次出現一個獨特的父母名稱感興趣。Django過濾一個查詢集 -
ID PARENT TYPE LIBTYPE NAME
1 1 project 1 book_a
4 4 project 2 book_b
5 4 project 2 book_c
6 4 project 2 book_d
7 4 project 4 book_c
8 5 project 2 book_e
9 5 project 4 book_e
10 7 project 0 book_f
11 7 project 0 book_g
12 7 project 6 book_h
13 6 user 1 book_i
14 6 project 1 book_j
15 6 project 1 book_k
16 7 project 5 book_h
17 7 project 8 book_h
18 7 project 7 book_h
19 7 project 9 book_h
20 7 project 1 book_h
21 8 project 1 book_a
所以我們開始一個基本的查詢集..
vars = Variants.objects.filter(type="project")
這移出孤獨的用戶。現在在純Python我只想做這個篩選這個傻逼。
vars = Variants.objects.filter(type="project")
new_vars = []
for idx, var in vars.enumerate():
if var.name not in new_vars:
new_vars.append((var.parent,var.name))
else:
del vars[idx]
我到底應該結束了,下面的ID(1,4,5,6,8,10,11,13,14,15,21)很顯然,我不能在查詢集枚舉再加上我相信有一種方法可以在Django中進行過濾。
有人可以請講解如何有效地在Django中做到這一點?
一個不相關的小竅門:我會避免使用'vars'作爲變量/函數名稱,因爲它會覆蓋內置函數。見http://docs.python.org/library/functions.html –