加入所有数据集

时间:2013-07-16 09:08:46

标签: python django

有桌子,我想要显示每个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

1 个答案:

答案 0 :(得分: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