as_dict(self, keys=None, exclude_keys=None):
"""
将ORM对象序列化为字典
:param keys:
:return:
"""
if not keys:
keys = self.output_fields
keys += ['add_datetime', 'update_datetime', 'uuid']
keys = set(keys)
object_dict = dict()
for key in keys:
if exclude_keys and key in exclude_keys:
continue
value = last_value = getattr(self, key)
if isinstance(value, raw_models.Model):
if isinstance(value, self.__class__):
last_value = value.__unicode__()
else:
last_value = value.as_dict()
if last_value is None:
last_value = ''
object_dict[key] = last_value
key_field = self.__class__._meta.get_field(key)
if key_field.choices: # 如果是下拉列表字段
object_dict[key + '_map'] = dict(key_field.choices)
return object_dict

最新文章

  1. 非技术1-学期总结&ending 2016
  2. freecodecamp记录
  3. LintCode MinStack
  4. 【代码笔记】iOS-点击cell时候的动画翻转
  5. Activiti 删除流程定义
  6. ahjesus动态生成表达式树
  7. 无法启动T-SQL 调试
  8. Linux Bash代码 利用for循环实现命令的多次执行
  9. 一、oracle 高水位线详解
  10. 【Xamarin挖墙脚系列:Xamarin4.0的重大变更】
  11. 最短路径算法——Dijkstra,Bellman-Ford,Floyd-Warshall,Johnson
  12. python的with语句,超级强大
  13. MySQL数据库、表常用操作
  14. 20145232韩文浩《网络对抗》PC平台逆向破解
  15. MongoDB使用优化
  16. k8s (kubernetes) 代码分析
  17. 一个请求需要调用两个不同的数据库 添加DbContext
  18. Notepad++ 的资源管理器 右键菜单
  19. C++LeetCode:: Container With Most Water
  20. Chrome Extension 实战

热门文章

  1. Maven依赖冲突解决总结
  2. 视觉十四讲:第七讲_ORB特征点
  3. The Missing Semester - 第四讲 学习笔记
  4. 跳板攻击之:ICMP代理转发与反弹shell
  5. JS获取本周、本月、本季度、本年
  6. Canvas:绘制多边形
  7. OpenAI Java SDK——chatgpt-java-v1.0.3更新支持GPT-3.5-Turbo,支持语音转文字,语音翻译。
  8. day11_多态&抽象类&接口
  9. 常用的git提交代码命令
  10. 微信小程序if for