Poi*_*ter 3 odoo odoo-9 odoo-10
有什么不同:
test = self.env['my.example'].sudo().create({'id':1, 'name': 'test'})
test = self.env['my.example'].create({'id':1, 'name': 'test'})
Run Code Online (Sandbox Code Playgroud)
所有示例都有效,但使用时有什么优势sudo()?
Nag*_*lis 10
sudo()在调用之前调用(没有参数)create()将返回具有更新环境且具有admin(超级用户)用户ID集的记录集.这意味着对记录集的进一步方法调用将使用admin用户,因此绕过访问权限/记录规则检查[ source ].sudo()还有一个可选参数user,它是res.users将在环境中使用的user()的ID (SUPERUSER_ID默认值).
不使用时sudo(),如果调用方法的用户create对my.example模型没有权限,则调用create将失败AccessError.
由于访问权限/记录规则不适用于超级用户,因此sudo()应谨慎使用.此外,它可能会产生一些不良影响,例如.在多公司环境,来自不同公司的混合记录,另外,重新获取由于缓存失效(见环境交换的模型参考).
| 归档时间: |
|
| 查看次数: |
4405 次 |
| 最近记录: |