zyf 02 批量处理自定义对象的序列化操作 - nuanxin1111/react GitHub Wiki
#案例 在做问医生后台模块时,因为前端Js要对传递过来的医生问答列表进行操作,后台要对抽象类列表进行序列化操作,抽象类如果包含datetime类型的字段,序列化是无法成功的。要先对datetime进行转化,因为是在列表中如果再拆分列表,效率会降低。批量序列化这类抽象化步骤如下:
- 处理时间模块(timeEncoder.py)
#!/usr/bin/env python
#coding:utf-8
import json
from datetime import datetime
from datetime import time
class CJsonEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime):
return obj.strftime('%Y-%m-%d %H:%M:%S')
elif isinstance(obj, date):
return obj.strftime('%Y-%m-%d')
else:
return json.JSONEncoder.default(self, obj)
链接:http://blog.csdn.net/joeblackzqq/article/details/9199549
- 序列化列表(业务层)
try:
faq_list = patient.fetch_doctor_question_list(doctor_id=arg_doctorid)
except:
logger.info('patient.fetch_doctor_question_list() error at \
patient.views.mydoctor_faq')
return HttpResponse('无法得到医生问答列表')
context_dict['faq_list'] = json.dumps(faq_list, cls=CJsonEncoder)
- 前端js使用
var faq_list = {{ faq_list | safe }};
原因:http://www.cnblogs.com/cyiner/archive/2011/11/10/2244838.html