2013-07-16 80 views
-1

有表格,我想顯示每個B和C具有相同的A.
如果C有B,它應該在一行上顯示它。
若C不具有B,只顯示C.
。如果B沒有C,只顯示B.加入全部數據集

是否有加入B和C沒有什麼好的辦法,所以我得到這一結果?
可以加入它們,但只有連接了C和B.

class A 
Id 

class B 
id 
Name 
A.id 

class C 
id 
Name 

class E 
Id 
B.id 
C.id 
+0

這僅僅是抽象的 – djinn

回答

1

嘗試這樣

es = E.objects.all() 
b_list = [] 
c_list = [] 
for each in es: 
    print each.b.name, each.c.name 
    b_list.append(each.b) 
    c_list.append(each.c) 
bs = B.objects.all() 
cs = C.objects.all() 
for each in bs: 
    if each in b_list: 
     continue 
    print each.name 
for each in cs: 
    if each in c_list: 
     continue 
    print each.name 
+0

感謝您的幫助和時間,你多姆到這一點。 解決了它,但沒有時間解釋。 – kingRauk