我正在使用Django的內置用戶模型,並有一個自定義的Foo對象與外鍵給用戶。我在尋找,選擇所有用戶對象和所有符合一定的約束富的對象,像這樣:Django左外連接過濾器
SELECT * from auth_user LEFT OUTER JOIN "foo" ON
(auth_user.id = foo.id AND <other criteria here>)
我應該如何在Django做到這一點?到目前爲止,我已經試過:
User.objects.filter(foo__<criteria>)
但產生類似這樣的SQL:
SELECT * from auth_user LEFT OUTER JOIN "foo" ON
(auth_user.id = foo.id) WHERE <other criteria here>
,並只返回有符合標準的Foo對象的用戶對象。或者,我可以選擇所有用戶對象併爲每個用戶運行一個查詢,但效率會大大降低。
其他標準是什麼?這一切仍然與'Foo'模型有關嗎? – Ngenator 2013-03-25 19:31:01
是的。 Foo包含一對夫婦日期字段,我只從指定的日期範圍中選擇Foos。 – Phobophobia 2013-03-25 22:02:16
'User.objects.filter(foo__)'應該做什麼? '用戶'模型中'foo'不是字段。我從來沒有能夠生成具有'LEFT OUTER JOIN'的查詢。 –
user2233706
2013-08-16 04:05:21