我有这个查询:

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()

08-25 14:13
查看更多