1. 程式人生 > >ValuesQuerySet物件 轉換成json

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