ValuesQuerySet对象 转换成json

def search(request):
    kw = request.GET.get('kw')
    word = Cnword.objects.filter(words__startswith=kw).values('words')[0:10]  # 返回django.db.models.query.ValuesQuerySet对象
    # word = Cnword.objects.filter(words__startswith=kw)[0:10]  # 返回django.db.models.query.QuerySet对象
    if word:
        word = list(word) #ValuesQuerySet对象需要先转换成list
        data = json.dumps(word) # 把list转成json
        # data = serializers.serialize("json", word) #django.db.models.query.QuerySet对象可以序列化
        return HttpResponse(data) #返回json
    return HttpResponse('false')


不需要全部字段时,可以用values('字段名','字段名2')来要求返回的是哪些列的数据.但是返回来的是ValuesQuerySet对象而不是QuerySet对象.
ValuesQuerySet对象 不能用 serializers.serialize() 方法序列化成json 需要先转换成list 再用 json.dumps()方法序列化成json

如果是直接models.objects.filter()查询出来的queryset对象,要用serializers.serialize() 方法序列化成json 


转自:https://blog.csdn.net/qq_24861509/article/details/49172945 
 

猜你喜欢

转载自blog.csdn.net/sinat_34166518/article/details/84630568
今日推荐