我可以通过其他方式获取对象字段的值obj.field吗?有类似obj.get('field')存在吗?设置字段值的方法相同.
Joã*_*cus 69
要获取字段的值:
getattr(obj, 'field_name')
Run Code Online (Sandbox Code Playgroud)
要设置字段的值:
setattr(obj, 'field_name', 'field value')
Run Code Online (Sandbox Code Playgroud)
获取Django对象的所有字段和值:
[(field.name, getattr(obj,field.name)) for field in obj._meta.fields]
Run Code Online (Sandbox Code Playgroud)
您可以阅读Model _meta API的文档,它非常有用.
你为什么要这个?
你可以用
obj.__dict__['field']
Run Code Online (Sandbox Code Playgroud)
我想......虽然这不是方法调用
changed=[field for (field,value) in newObj.__dict__ if oldObj.__dict__[field] != value]
Run Code Online (Sandbox Code Playgroud)
将为您提供已更改的所有字段的列表.
(虽然我不是100%肯定)
| 归档时间: |
|
| 查看次数: |
31569 次 |
| 最近记录: |