2024-06-01 06:15:06 发布
网友
假设我有一个名为'Blog'的Django模型,其主键字段是'id',是否有一个查询可以运行,它将返回一个字典,其中包含索引Blog模型实例的id值的键?
in_bulk()似乎是我想要的类型,但在这种情况下,它需要一个特定id值的列表,例如
Blog.objects.in_bulk([1])
将给予
{1: <Blog: Beatles Blog>}
文件上说,如果你传递一个空列表,你会得到一个空字典,那么有没有办法让我得到所有值?
您还可以尝试将ValuesListQuerySet对象放入“in_bulk”方法,如下所示:
blog_query = Blog.objects.values_list('pk', flat=True) Blog.objects.in_bulk(blog_query)
只是Python
{x.pk:x for x in Blog.objects.all()}
编辑:
Alb在这里,只是添加了如果您使用的是Python 2.6或更早版本,则需要使用这种较旧的样式语法:
dict((x.pk, x) for x in Blog.objects.all())
默认情况下,in_bulk方法的id_list参数为None,因此不要向其传递任何内容:
in_bulk
id_list
Blog.objects.in_bulk()
在结果中,默认键是主键。要覆盖该用法,请执行以下操作:
Blog.objects.in_bulk(field_name='<unique_filed_name>')
注意:密钥必须是唯一的,否则您将获得ValueError
ValueError
您还可以尝试将ValuesListQuerySet对象放入“in_bulk”方法,如下所示:
只是Python
编辑:
Alb在这里,只是添加了如果您使用的是Python 2.6或更早版本,则需要使用这种较旧的样式语法:
默认情况下,
in_bulk
方法的id_list
参数为None,因此不要向其传递任何内容:在结果中,默认键是主键。要覆盖该用法,请执行以下操作:
注意:密钥必须是唯一的,否则您将获得
ValueError
相关问题 更多 >
编程相关推荐