脚本宝典收集整理的这篇文章主要介绍了ODOO的重要对象ENVIRONMENT (ENV) 简析,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
environment 是 odoo 中操作db的总句柄,以下几种方式可以获得:
self.env
得到 Environmentrequest.env()
得到 Environmentcls.env
、PRoduct.env
eg 一些常用上下文参数:
Environment用途示例
目前新版的Odoo中使用到的self,是对 游标cr、用户ID、模型、上下文、记录集、缓存 的封装。
我们可以通过 self.XX 获取到这些封装的东西,比如:self.cr、self.uid。
我们在查出某模型的记录后,可以通过 record.XX = value 来直接修改记录的字段内容。
同样,在重写模型的wrITe方法中,也可以通过 self.XX = value 来指定新增记录中某字段的值。
这里需要注意两点:
1:修改查出来的记录字段值来改变数据库内容,是通过改变缓存中的值出发数据库写记录来达到的。
2:重写write方法时,在write方法中每调用一次 self.XX = value 语句,都会触发数据库写操作,因此一般采用如下写法:
1:操作缓存
环境储存了模型的缓存记录集,因此我们可以通过环境来获取、增加、修改、删除记录,而触发数据库更改,从而达到操作数据库的目的。
例如:新增一条记录
2:改变用户权限
我们可以通过self.sudo()获得超级权限,从而确保我们的操作能够进行。
3:访问当前用户
4:获取XML的ID
5:更新缓存,触发数据库操作
1:普通查询:返回记录集,后续通过修改记录值来触发数据库修改
2:只读查询:返回列表,只能提取内容,不能触发数据库修改
3:统计数量:返回符合条件的记录条数
4:浏览:通过一系列id值,返回对应的记录集
5:删除
Odoo在创建一个新记录时,会使用Models.ids虚拟一个记录id。
可以通过如下语句来判断:
以上是脚本宝典为你收集整理的ODOO的重要对象ENVIRONMENT (ENV) 简析全部内容,希望文章能够帮你解决ODOO的重要对象ENVIRONMENT (ENV) 简析所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。