Alb*_*Alb 6 python django model
假设我有一个名为'Blog'的Django模型,主键字段为'id',是否有一个我可以运行的查询,它将返回一个字典,其中包含索引Blog模型实例的id值的键?
in_bulk()看起来像我想要的东西,但在这种情况下它需要一个特定id值的列表,例如
Blog.objects.in_bulk([1])
Run Code Online (Sandbox Code Playgroud)
会给
{1: <Blog: Beatles Blog>}
Run Code Online (Sandbox Code Playgroud)
该文件说,如果你传递一个空列表,你将得到一个空字典,那么有什么方法可以让所有的价值回来?
Dmi*_*nko 11
这只是python
{x.pk:x for x in Blog.objects.all()}
Run Code Online (Sandbox Code Playgroud)
编辑:
Alb在这里,只是补充一点,如果您使用的是Python 2.6或更早版本,则需要使用这种旧式语法:
dict((x.pk, x) for x in Blog.objects.all())
Run Code Online (Sandbox Code Playgroud)
Bas*_*lex 11
in_bulk方法的id_list参数是默认的,所以不要传递任何东西给它:None
>>> Blog.objects.in_bulk()
{1: <Blog: Beatles Blog>, 2: <Blog: Cheddar Talk>, 3: <Blog: Django Weblog>}
Run Code Online (Sandbox Code Playgroud)
结果,默认键是主键。要覆盖该使用:
Blog.objects.in_bulk(field_name='<unique_field_name>')
Run Code Online (Sandbox Code Playgroud)
注意:密钥必须是唯一的,否则你会得到 ValueError
| 归档时间: |
|
| 查看次数: |
5092 次 |
| 最近记录: |