zoukankan      html  css  js  c++  java
  • Django 调试时提示: In order to allow non-dict objects to be serialized

    isinstance()函数:

    该函数判断一个对象是否是已知的类型,类似于type()

    isinstance()会认为子类是一种父类类型,考虑了继承关系,而type()不会认为子类是一种父类类型,不考虑继承关系。

    isinstance(object,classinfo)object是实例对象,classinfo是直接或间接类名,基本类型或者由他们组成的元组。

    return JsonResponse(result)变更为return JsonResponse(result,safe=False)
    原因看源码:

    def __init__(self, data, encoder=DjangoJSONEncoder, safe=True,
                 json_dumps_params=None, **kwargs):
        if safe and not isinstance(data, dict):
            raise TypeError(
                'In order to allow non-dict objects to be serialized set the '
                'safe parameter to False.'
            )
      
      if json_dumps_params is None:
            json_dumps_params = {}
        kwargs.setdefault('content_type', 'application/json')
        data = json.dumps(data, cls=encoder, **json_dumps_params)
        super(JsonResponse, self).__init__(content=data, **kwargs)
    
    

    if safe and not isinstance(data, dict):如果safe=True 传入的数据类型不是dict,那么条件就成立,抛出异常

  • 相关阅读:
    操作系统_3:linux教程列表
    MongoEngine 查询语法
    Spark_1:教程索引
    软件需求十步走之阅读笔记03
    软件需求十步走之阅读笔记02
    软件需求十步走之阅读笔记01
    暑期学习四
    暑期学习三
    暑期学习二
    暑期学习一
  • 原文地址:https://www.cnblogs.com/Zhao159461/p/11966771.html
Copyright © 2011-2022 走看看