Django:返回值的dict列表\u列表?

Django:返回值的dict列表\u列表?,django,django-models,django-queryset,Django,Django Models,Django Queryset,我有一个疑问: cities = ShippingPrice.objects.filter(city1__name__icontains=request.REQUEST.get('city','')).values_list('city1__id','city1__name').order_by('city1__name').distinct() 它返回一个列表列表。最好不要做.values\u list('city1\u id','city1\u name')我可以写: .values_li

我有一个疑问:

cities = ShippingPrice.objects.filter(city1__name__icontains=request.REQUEST.get('city','')).values_list('city1__id','city1__name').order_by('city1__name').distinct()
它返回一个列表列表。最好不要做
.values\u list('city1\u id','city1\u name')
我可以写:

.values_list({'id':'city1__id','name':'city1__name'})
它会还给我一份口述清单,比如

[{'id':4135,'name':'Seattle'},{'id':4154,'name':'Vancouver'}]
有没有任何现有的方法可以做到这一点


我正在浏览Django源代码,但我不知道如何覆盖它:

def values_list(self, *fields, **kwargs):
    flat = kwargs.pop('flat', False)
    if kwargs:
        raise TypeError('Unexpected keyword arguments to values_list: %s'
                % (kwargs.keys(),))
    if flat and len(fields) > 1:
        raise TypeError("'flat' is not valid when values_list is called with more than one field.")
    return self._clone(klass=ValuesListQuerySet, setup=True, flat=flat,
            _fields=fields)

为什么不首先使用呢?

我习惯了使用
值列表
,我忘了
实际上做了什么…哈哈。但是,我还是希望重命名这些字段
city1\u name
并不是一个很好的键。不过,通过
dict()
中的genex重新映射是很容易的。是吗?然后我必须创建另一个dict映射
{'city1_u__name':'name'}
并进行一些疯狂的逻辑转换…这似乎比使用
values_list
并通过
[dict(zip(key,values))传递给values_list中的值要详细得多。
太简单了,无法计算。