django values_list返回dict的列表



我试图将我的Querset对象返回,作为使用

的唯一项目列表
return qs.values_list(distinct_val, flat=True)

如果i print 在查询上方,则将['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']

我的响应:

[
    {},
    {}
]

我的自定义视图集:

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

您必须将QuerySet转换为list()

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

最新更新