TypeError: In order to allow non-dict objects to be serializ
发布时间:2020-12-15 17:14:29 所属栏目:大数据 来源:网络整理
导读:在开发中使用JsonResponse返回数据遇到错误: TypeError:?In?order?to?allow?non-dict?objects?to?be?serialized?set?the?safe views.py代码示例 def?userProfile(request):????posts?=?User.objects.order_by('id')[:10].reverse()????return?JsonResponse(
在开发中使用JsonResponse返回数据遇到错误: TypeError:?In?order?to?allow?non-dict?objects?to?be?serialized?set?the?safe views.py代码示例 def?userProfile(request): ????posts?=?User.objects.order_by('id')[:10].reverse() ????return?JsonResponse(posts) JsonResponse源码: class?JsonResponse(HttpResponse): ????""" ????An?HTTP?response?class?that?consumes?data?to?be?serialized?to?JSON. ????:param?data:?Data?to?be?dumped?into?json.?By?default?only?``dict``?objects ??????are?allowed?to?be?passed?due?to?a?security?flaw?before?EcmaScript?5.?See ??????the?``safe``?parameter?for?more?information. ????:param?encoder:?Should?be?a?json?encoder?class.?Defaults?to ??????``django.core.serializers.json.DjangoJSONEncoder``. ????:param?safe:?Controls?if?only?``dict``?objects?may?be?serialized.?Defaults ??????to?``True``. ????:param?json_dumps_params:?A?dictionary?of?kwargs?passed?to?json.dumps(). ????""" ????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().__init__(content=data,?**kwargs) 根据源码得知,是因为传入的data参数不是一个字典导致的错误。 解决方法: def?userProfile(request): ????posts?=?User.objects.order_by('id')[:10].reverse() ????return?JsonResponse(posts,?safe=False) 文档网址:https://docs.djangoproject.com/zh-hans/2.2/_modules/django/http/response/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- VB6.0 Provider=microsoft.ace.oledb.12.0和CommonDialog 冲
- VB.NET 调用Windows API 使用方法
- perl中//运算符的含义
- innosetup 界面默认选择系统语言
- delphi – 如何使用Extended数组进行SIMD?
- Golang 1.3 发布了。终于找地方下载了。
- 图像处理系列教程二:GDI+版图像数据的获取
- spring – 找不到类型为[org.hibernate.SessionFactory]的
- golang的指针receiver和非指针receiver的区别?
- delphi – 小命令行脚本程序(如Autocad命令)一行编辑器