Environment 是 odoo 中操作db的总句柄,以下几种方式可以获得:
在 8、9、10版本中中,对于继承了Model的类来说可以直接通过self.env得到 Environment
在请求的 Controller 可以通过 request.env()得到 Environment
通过模型类或模型类对象获取,cls.env、product.env
eg 一些常用上下文参数:
- 当前用户
self.env.user - 当前用户id
self.env.uid - 当前语言代码
self.env.lang - 当前数据库连接
self.env.cr
Environment用途示例:
利用 env[model] 获取模型类对象
self.env['ir.model'].search([('state', '!=', 'manual')])
利用 env.cr 执行sql语句
self.env.cr.execute(query, (value,))