博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Odoo 学习 【二】Environment 概览
阅读量:6983 次
发布时间:2019-06-27

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

Environment

参考链接:

在新的API中,引入了环境的概念,它的主要目标是提供对游标、用户、模型、上下文、记录集、和缓存的封装。

918915-20180507144019618-1418248328.png

有了这些,你没有必要在再需传入这些函数参数:

# before  def afun(self, cr, uid, ids, context=None):    pass  # now  def afun(self):    pass

你可以如下访问环境:

def afun(self):  self.env  # or  model.env

环境是不可变的,并不能直接被修改,因为它也保存着缓存和记录集等等。

修改 Environment

你可以使用with_context函数来修改你当前环境的上下文。

self.env['res.partner'].with_context(tz=x).create(vals)

注意不要使用这个功能来修改当前的记录集合:

self = self.env['res.partner'].with_context(tz=x).browse(self.ids)

在重新浏览之后,它将会修改记录集中当前的记录,这将会产生缓存和记录集合之间的不一致。

切换用户

环境提供了一个辅助函数来切换用户:

self.sudo(user.id)  self.sudo()  # 默认将会使用SUPERUSER_ID  # or  self.env['res.partner'].sudo().create(vals)

访问当前用户

self.env.user

使用xml id来获取记录

self.env.ref('base.main_company')

某些时候,你会不得不要使用这个游标直接插入/写入。在这种情况下,你要想要使得缓存失效。

self.env.invalidate_all()

转载于:https://www.cnblogs.com/baishoujing/p/9001358.html

你可能感兴趣的文章
智能家居——IoT零基础入门篇
查看>>
《Linux From Scratch》第一部分:介绍 第一章:介绍-1.3. 更新日志
查看>>
阿里将在雄安新区设3家子公司:涉AI、蚂蚁金服和菜鸟;北航设立全国首个人工智能专业,与百度合作办学...
查看>>
Powershell指令集_2
查看>>
归并排序算法
查看>>
北京第一个公共云计算平台即将诞生
查看>>
5G频谱相争“兵戎相见”各相部署风起云涌
查看>>
安全自动化在于信任,而非技术
查看>>
缘何Square可以在移动支付领域上成功?
查看>>
云计算从“仰望星空”到“脚踏实地”
查看>>
台积电要造第一款7nm芯片 明年下半年可投产
查看>>
《逻辑与计算机设计基础(原书第5版)》——3.9 二进制加法器
查看>>
《中国人工智能学会通讯》——8.25 基于演化优化的生物网络配准
查看>>
飞鹤乳业CIO:移动化让企业品牌和消费者紧密连接
查看>>
当精准广告遇到大数据
查看>>
《机器人自动化:建模、仿真与控制》——2.3 仿真
查看>>
泰一指尚大数据应用成为第一批省级重点企业研究院
查看>>
预测未来 盘点大数据分析领域五大趋势
查看>>
教你编写Node.js中间件,实现服务端缓存
查看>>
又到中元节 应用宝教你如何打败各种鬼
查看>>