我正在使用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