码迷,mamicode.com
首页 > 编程语言 > 详细

Python菜鸟之路:Django 序列化数据

时间:2017-02-24 16:06:20      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:自定义   json.js   instance   数据   serialize   else   errors   one   blog   

类型一:对于表单数据进行序列化

  这时需要用到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 序列化数据

标签:自定义   json.js   instance   数据   serialize   else   errors   one   blog   

原文地址:http://www.cnblogs.com/jishuweiwang/p/6438833.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!