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 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值