Django values_list返回dict列表

时间:2017-11-22 06:50:02

标签: django django-models

我尝试使用

将我的querset对象作为唯一项列表返回
return qs.values_list(distinct_val, flat=True)

如果我打印以上查询,则会将['val1','val2', etc]值作为列表。但是,当我想要返回我的输出时,就像这样,

[
    {},
    {
        "name": null,
        "id": null
    },
    {},
    {},
    {},
    {},
    {},
    {}
]

所需的输出是,

['Fredrick', 'Mohi', ]

代替,

[
  {'name': 'Fredrick'}
]

我犯了错误?

我的查询:

val = qs.values_list(distinct_val, flat=True).distinct().order_by()
print val
return val

我的打印声明:

[u'Frederick', None, u'Leslie', u'Francine']

我的回复:

[
    {},
    {}
]

我的自定义ViewSet:

class DjangoFilterBackendExt(DjangoFilterBackend):

    def filter_queryset(self, request, queryset, view):
        qs = super(DjangoFilterBackendExt, self).filter_queryset(request, queryset, view)
        distinct_val = request.query_params.get('distinct')
        if distinct_val:
            return qs.values(distinct_val).distinct()
        return qs

1 个答案:

答案 0 :(得分:0)

您必须将Queryset转换为list()

return list(qs.values_list(distinct_val, flat=True))