Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从模型查询中获取字典_Python_Django - Fatal编程技术网

Python 从模型查询中获取字典

Python 从模型查询中获取字典,python,django,Python,Django,在Django模型上查询而不是在对象列表上查询时是否可以获取字典?? 例如: ids = [1, 2, 3, 4, 5] objs = someModel.objects.filter(pk__in = ids) 它向我返回对象列表。我想要的是,如果可以的话,我想要以主键作为键的对象字典 objs = {1: query_object, 2: quer_object, 3: quer_object, 4: quer_object, 5: quer_object} 您可以使用列表理解手动创建:

在Django模型上查询而不是在对象列表上查询时是否可以获取字典?? 例如:

ids = [1, 2, 3, 4, 5]
objs = someModel.objects.filter(pk__in = ids)
它向我返回对象列表。我想要的是,如果可以的话,我想要以主键作为键的对象字典

objs = {1: query_object, 2: quer_object, 3: quer_object, 4: quer_object, 5: quer_object}

您可以使用列表理解手动创建:

dict([(obj.pk, obj) for obj in objs])
使用dict理解(-Python2.7.2和更早版本中提供):


除了更加明确和紧凑之外,这还避免了创建中间列表或生成器对象。

您还可以尝试将ValuesListQuerySet对象放入“批量”方法中,如下所示:

someModel_query = someModel.objects.values_list('pk', flat=True)
someModel.objects.in_bulk(someModel_query)
someModel_query = someModel.objects.values_list('pk', flat=True)
someModel.objects.in_bulk(someModel_query)