我正在使用 Django 的内置用户模型,并有一个自定义 Foo 对象,其中包含一个外键到用户。我正在寻找适合某些约束的所有 User 对象和所有 Foo 对象,如下所示:
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 对象的 User 对象。或者,我可以选择所有用户对象并为每个对象运行一个查询,但这会大大降低效率。