博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python model对象转为dict数据
阅读量:4592 次
发布时间:2019-06-09

本文共 738 字,大约阅读时间需要 2 分钟。

在接口通讯里经常遇到这种需求,需要将对象的字段名和值均传至接口,
user = User.objects.get(id=1)
笨方法1,没错,我这样写过:
di = {}
di['username'] = user.username
di['email'] = user.email
...... # 诸多赋值
笨方法2,没错,我也这样写过:
di = {}
all_fields = User._meta.get_all_field_names()
special_fields = ['is_active', 'is_stuff']
for i in special_fields:
    try:
        all_fields.remove(i)
    except:
        pass
for field in all_fields:
    di[field] = getattr(user, field)
!!!正确的方法,翻源码时遇到的,最喜欢这种命名,看名字就知道了怎样用和返回值,看到它时又感觉django暖暖的,很贴心~:
from django.forms.models import model_to_dict
di = model_to_dict(user, exclude=['is_active', 'is_stuff'])
源码:def model_to_dict(instance, fields=None, exclude=None):
参数instance是对象实例,fields是指定需要哪些字段,exclude是指定排除哪些字段,exclude比fields优先级高。

转载于:https://www.cnblogs.com/zknublx/p/6180430.html

你可能感兴趣的文章
H5 基于Web Storage 的客户端留言板
查看>>
linux添加字体
查看>>
Fastjson是一个Java语言编写的高性能功能完善的JSON库。
查看>>
一篇和Redis有关的锁和事务的文章
查看>>
delphi验证手机号码地址的正则表达式验证function
查看>>
sublime 我的快捷键
查看>>
asp.net MVC日志插件Log4Net学习笔记一:保存日志到本地
查看>>
9-16Jenkins-1第一个任务
查看>>
HTML 标签
查看>>
8 款为 WordPress 文章生成缩略图的插件
查看>>
bzoj1396 识别子串
查看>>
Android开发六:常用控件3--ListView(一)
查看>>
Wormholes (bellman)
查看>>
[ 产品经理 ] 产品经理的一天工作内容
查看>>
依赖倒转原则
查看>>
Dubbo分布式服务框架入门(附project)
查看>>
A2-02-14.DML- MySQL LEFT JOIN
查看>>
char与CString相互转换
查看>>
jQuery Ajax总结
查看>>
制作Visual Studio 2019 (VS 2019) 离线安装包
查看>>