假设我的Django模型名为'Blog',主键字段为'id',是否有一个我可以运行的查询,它将返回一个字典,其中包含索引Blog模型实例的id值的键?
in_bulk()似乎就像我想要的那样,但在这种情况下它需要一个特定id值的列表,例如。
Blog.objects.in_bulk([1])
将给出
{1: <Blog: Beatles Blog>}
该文档说如果你传递一个空列表,你会得到一个空字典,那么有什么办法可以让所有值回来吗?
答案 0 :(得分:9)
这只是python
{x.pk:x for x in Blog.objects.all()}
编辑:
Alb这里,只是补充说如果您使用的是Python 2.6或更早版本,则需要使用这种旧式语法:
dict((x.pk, x) for x in Blog.objects.all())
答案 1 :(得分:2)
in_bulk第一个参数id_list默认为None,所以不要传递任何东西
Blog.objects.in_bulk()
答案 2 :(得分:0)
您还可以尝试将ValuesListQuerySet对象放入&#34; in_bulk&#34;像这样的方法:
blog_query = Blog.objects.values_list('pk', flat=True)
Blog.objects.in_bulk(blog_query)