使用self.env来查看当前的环境属性
>>> self.env
<odoo.api.Environment object at 0x7f78a26026a0>
self.env 中的执行环境中有以下属性:
env.cr是正在使用的数据库游标(cursor)
env.user是当前用户的记录
env.uid是会话用户 id,与env.user.id相同
env.context是会话上下文的不可变字典
服务端获取上下文
服务端查看上下文命令为self.context_get()或self.env.context
修改记录集执行环境
记录集执行环境是不可变的,因此不能被修改,但我们可以创建一个变更环境并使用它来执行操作。我们通过如下方法来实现:
env.sudo(user)中传入一条用户记录并返回该用户的环境。如未传入用户,则使用__system__超级用户root,这时可绕过安全规则执行指定操作。
env.with_context() 替换原上下文为新的上下文
env.with_context(key=value,…)修改当前上下文,为一些键设置值
有时我们只要知道满足某一条件的记录条数,这时可使用search_count()来返回记录条数而非记录集。这节约了先获取记录列表再记数的开销,在还没有获取记录集且仅想知道记录条数时这样会更高效。
iu_en_uan 发布了9 篇原创文章 · 获赞 0 · 访问量 394 私信 关注