Python菜鸟之路:Django 序列化数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python菜鸟之路:Django 序列化数据相关的知识,希望对你有一定的参考价值。
类型一:对于表单数据进行序列化
这时需要用到ErrorDict。
ret[‘errors‘] = obj.errors.as_data() result = json.dumps(ret, cls=JsonCustomEncoder) #JsonCustomEncoder是自定义的cls,用来转换ret中特殊的error字段类型 return HttpRespon(result)
类型二:对于queryset类型进行序列化
第一种:v的类型是未知的 from django.core import serializers v = models.tb.objects.all() # 或者 v = models.tb.objects.values(‘id‘,‘name‘) v=list(v) data = serializers.serialize("json", v) 第二种:v的类型是已知的,在包含不能序列化的数据,比如time,datetime等类型时,需要自己定义cls import json from datetime import date from datetime import datetime class JsonCustomEncoder(json.JSONEncoder): def default(self, field): if isinstance(field, datetime): return field.strftime(‘%Y-%m-%d %H:%M:%S‘) elif isinstance(field, date): return field.strftime(‘%Y-%m-%d‘) else: return json.JSONEncoder.default(self, field) v = models.tb.objects.values(‘id‘,‘name‘,‘ctime‘) v = list(v) v = json.dumps(v,cls=JsonCustomEncoder)
以上是关于Python菜鸟之路:Django 序列化数据的主要内容,如果未能解决你的问题,请参考以下文章
Python菜鸟之路:Django Admin后台管理功能使用