栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Django左外连接带过滤器

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django左外连接带过滤器

如果您希望Django提取所有

User
对象以及
Foo
与用户对象相关的所有对象,则可以使用
select_related()

User.objects.all().select_related('foo')

但在这里,你不希望 所有

Foo
那些与用户对象的对象,你只是希望他们的满足您的标准的子集。我不知道一种告诉Django在单个查询集中执行此操作的方法。但是您 可以
做的是分别进行两个选择并在Python中进行联接:

# Map from user id to corresponding Foo satisfying <criteria>, if any.foos = {foo.user_id: foo for foo in         Foo.objects.filter(user__isnull = False, <criteria>)}for user in User.objects.all():    foo = foos.get(user.id)    # ...

(这不会比您做更多的数据库工作或传输更多的数据

LEFT OUTER JOIN
,因此我认为这是一种合理的方法。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/612310.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号