您好 我正在尝试使用Django创建一个将从某个关键字搜索数据库的页面,我已设法在数据库中搜索关键字,但现在我需要将数据序列化为JSON格式的数组,以便我可以使用它客户端使用JavaScript。
当我尝试序列化我的结果数组时,我收到此错误:
'dict'对象没有属性'_meta'
我的代码如下所示:
def SearchItems(request, itemName):
items_list = list(Item.objects.filter(name = itemName).values())
json_serializer = serializers.get_serializer("json")()
data = json_serializer.serialize(items_list, ensure_ascii=False)
return HttpResponse(data)
任何帮助将不胜感激, RayQuang
答案 0 :(得分:2)
尝试这样做,而不是使用序列化器:
return HttpResponse(simplejson.dumps(items_list),'application/json'))
请参阅this answer了解详情
答案 1 :(得分:0)
不要将对象转换为dict。 只需将查询集传递给序列化程序:
json_serializer.serialize(Item.objects.filter(name=itemName), ensure_ascii=False)
或者,您可以直接使用json / cjson / anyjson序列化程序:
import anyjson
HttpResponse(anyjson.serialize(Item.objects.filter(name=itemName).values()), content_type="application/json")