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