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