Environment

参考链接: http://odoo-new-api-guide-line.readthedocs.io/en/latest/environment.html#environment

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

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

  # beforedef afun(self, cr, uid, ids, context=None):pass# nowdef afun(self):pass

你可以如下访问环境:

  def afun(self):self.env# ormodel.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# orself.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

Odoo 学习 【二】Environment 概览相关推荐

  1. hadoop hive hbase 入门学习 (二)

    hadoop 自学系列                hadoop hive hbase 入门学习 (一) hadoop安装.hdfs学习及mapreduce学习 hadoop 软件下载 (hadoo ...

  2. Docker学习二:Docker镜像与容器

    前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...

  3. (转)MyBatis框架的学习(二)——MyBatis架构与入门

    http://blog.csdn.net/yerenyuan_pku/article/details/71699515 MyBatis框架的架构 MyBatis框架的架构如下图:  下面作简要概述: ...

  4. odoo学习必看-提问的智慧《How To Ask Questions The Smart Way》

    odoo学习必看-提问的智慧<How To Ask Questions The Smart Way> 人必自助而后人助之,而后天助之.出自<周易·系辞上> 访问原文 感觉这篇文 ...

  5. AFL(american fuzzy lop)学习二

    AFL(american fuzzy lop)学习二 @sizaif @2022-04-10 设计思想 覆盖率计算 改进边缘覆盖: 向目标程序注入以下工具来捕获分支(边缘)覆盖率和分支命中计数 一条边 ...

  6. 2月份隐私计算、联邦学习的市场概览

    2月份隐私计算.联邦学习的市场概览 摘要:在隐私计算市场中,三股信息流如清风拂面,流转不息.采购意向,犹如花开满园,为供应商和服务提供商探明商机:招标信息,如云卷云舒,为客户了解市场动态提供重要参考: ...

  7. cs231n 课程学习 二

    cs231n 课程学习 二 cs231n 课程资源:Stanford University CS231n: Convolutional Neural Networks for Visual Recog ...

  8. C#多线程学习(二) 如何操纵一个线程

    C#多线程学习(二) 如何操纵一个线程 原文链接:http://kb.cnblogs.com/page/42529/ [1] C#多线程学习(二) 如何操纵一个线程 [2] C#多线程学习(二) 如何 ...

  9. spring security 学习二

    spring security 学习二 doc:https://docs.spring.io/spring-security/site/docs/ 基于表单的认证(个性化认证流程): 一.自定义登录页 ...

  10. STL源码剖析学习二:空间配置器(allocator)

    STL源码剖析学习二:空间配置器(allocator) 标准接口: vlaue_type pointer const_pointer reference const_reference size_ty ...

最新文章

  1. DIY最近准备配一台经济型的电脑,查了一下配置如下,总价2481元,自己也不专业,不知道有没有问题...
  2. java io 文件复制_实例讲述Java IO文件复制
  3. JMeter性能测试,验证请求数据的准确性(wc命令)
  4. python字典内存分析_Python减少字典对象占用的七成内存
  5. Qt与FFmpeg联合开发指南(二)——解码(2):封装和界面设计
  6. [AGC009B] Tournament(多叉树转二叉树后的最小可能深度)
  7. php背景图添加字,怎样给视频后面加背景图 视频加背景图片并添加一行广告文字...
  8. ElasticSearch sql 插件安装
  9. redis入门——客户端篇
  10. 阿里巴巴Python工程师面试题之一:单引号,双引号,三引号的区别
  11. java全栈_java全栈的知识技能
  12. TCP和UDP对比的优势和劣势
  13. 使用Pytorch识别字符验证码
  14. 关于js导入Excel时,Excel的(年/月/日)日期是五位数字的问题。以及对Excel日期存在的错误的分析和处理。
  15. elasticsearch进阶(3)—— ilm policy
  16. 转行做软件编程开发的经历
  17. 插件小王子的插件源码汇总
  18. ESXI6.7升级至ESXI7及各问题的解决
  19. Oracle查询出第N高薪水的值
  20. libusb的简单使用

热门文章

  1. linux中pipe
  2. MVC3+EF4.1学习系列(一)-------创建EF4.1 code first的第一个实例(强转)
  3. C#编程应用--线程与委托
  4. 关于CSS样式浏览器兼容问题的一些注意事项
  5. 构建插件式的应用程序框架(六)----通讯机制(ZT)
  6. 五. python的日历模块
  7. 手机APP自动化之uiautomator2 +python3 UI自动化
  8. 特斯拉解锁对汽车电池容量的软件限制,以帮助用户逃离飓风危险
  9. window 远程访问本地centos/redhat虚拟机上jupter notebook 配置方法
  10. IPVS: Can't initialize ipvs: Protocol not available解决方法