2010-11-06 52 views

回答

0

編輯:

m1.objects.all()+ m2.objects.all()

list(m1.objects.all()) + list(m2.objects.all()) 

但是..丹尼爾·羅斯曼大約有笛卡爾乘積一個非常好的問題 - 如果這是你的意思是。

+0

這將失敗,除非m1和m2是相同的型號。或者我錯了? – 2010-11-06 22:57:39

+0

這是一個簡單的列表,除此之外,它不會失敗。 – 2010-11-06 23:07:12

+0

-1。查詢集不是列表。這將失敗 - 實際上,即使它們是相同的模型,它也會失敗,因爲QuerySet類沒有定義'__add__'方法。 – 2010-11-07 09:22:02

1

我想你知道你發佈的SQL在表m1和m2之間產生笛卡爾連接?也就是說,您的結果集包含m1中所有可能的行,並與m2中所有可能的行結合,因此如果您在一個表中有5行,而另一個表中有10行,則會得到50個結果。

如果這真的是你想要的,我想不出爲什麼會這麼做,Django ORM中沒有簡單的方法。

但是,如果你實際上意味着是一個簡單的JOIN:

SELECT * from m1, m2 WHERE m1.m2_id = m2.id; 

那麼你就可以實現與select_related()方法類似。