当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Django QuerySet.in_bulk用法及代码示例


本文介绍 django.db.models.query.QuerySet.in_bulk 的用法。

声明

in_bulk(id_list=None, *, field_name='pk')

获取字段值列表 (id_list) 和这些值的 field_name,并返回一个字典,将每个值映射到具有给定字段值的对象实例。 in_bulk 不会引发任何 django.core.exceptions.ObjectDoesNotExist 异常;也就是说,任何不匹配任何实例的 id_list 值都将被忽略。如果未提供 id_list,则返回查询集中的所有对象。 field_name 必须是唯一字段或不同字段(如果在 distinct() 中仅指定一个字段)。 field_name 默认为主键。

例子:

>>> Blog.objects.in_bulk([1])
{1: <Blog: Beatles Blog>}
>>> Blog.objects.in_bulk([1, 2])
{1: <Blog: Beatles Blog>, 2: <Blog: Cheddar Talk>}
>>> Blog.objects.in_bulk([])
{}
>>> Blog.objects.in_bulk()
{1: <Blog: Beatles Blog>, 2: <Blog: Cheddar Talk>, 3: <Blog: Django Weblog>}
>>> Blog.objects.in_bulk(['beatles_blog'], field_name='slug')
{'beatles_blog': <Blog: Beatles Blog>}
>>> Blog.objects.distinct('name').in_bulk(field_name='name')
{'Beatles Blog': <Blog: Beatles Blog>, 'Cheddar Talk': <Blog: Cheddar Talk>, 'Django Weblog': <Blog: Django Weblog>}

如果你传递 in_bulk() 一个空列表,你会得到一个空字典。

在 Django 3.2 中更改:

允许使用不同的字段。

相关用法


注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.db.models.query.QuerySet.in_bulk。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。