【问题标题】:Django error serilaizing output of query into JSONDjango错误将查询输出序列化为JSON
【发布时间】:2011-07-05 03:36:46
【问题描述】:

嗨 我正在尝试使用 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)

任何帮助将不胜感激, 瑞光

【问题讨论】:

    标签: django json


    【解决方案1】:

    尝试这样做,而不是使用序列化程序:

    return HttpResponse(simplejson.dumps(items_list),'application/json'))
    

    查看this answer了解更多信息

    【讨论】:

      【解决方案2】:

      不要将对象转换为字典。 只需将查询集传递给序列化程序:

      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")
      

      【讨论】:

        猜你喜欢
        • 2013-03-30
        • 1970-01-01
        • 2015-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-31
        • 1970-01-01
        相关资源
        最近更新 更多