Python 从模型查询中获取字典
在Django模型上查询而不是在对象列表上查询时是否可以获取字典?? 例如: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} 您可以使用列表理解手动创建:
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)