我有这个查询:
cities = ShippingPrice.objects.filter(city1__name__icontains=request.REQUEST.get('city','')).values_list('city1__id','city1__name').order_by('city1__name').distinct()
它返回一个列表列表。最好不要做
.values_list('city1__id','city1__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)
最佳答案
为什么不直接使用 values()
首先?
关于Django:返回 values_list 的字典列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6405203/