如何在odoo 9中存储当前记录的用户ID或活动用户ID?

时间:2016-12-25 02:54:56

标签: python openerp odoo-8 odoo-9

在费用方面,任何人都必须批准费用清单,我想显示哪个用户被批准了?

我只选择所有res.users作为one2many

approved_by=fields.Many2one('res.users','Approved By')

在XML

<field name="approved_by" />

此处将显示所有用户。但我想只显示已登录的用户,必须将其选为默认用户。

3 个答案:

答案 0 :(得分:4)

在字段上定义默认值,默认值将是一个返回当前用户ID的函数,可以使用self.env.uid

访问该ID
def get_user_id(self):
    return self.env.uid

approved_by=fields.Many2one('res.users','Approved By', default=_get_user_id)

如果您想要编辑/更改字段,请设置readonly=True

答案 1 :(得分:2)

环境存储ORM使用的各种上下文数据。有关详细信息Odoo Environment

尝试使用以下代码。

approved_by = fields.Many2one('res.users','Approved By', default=lambda self: self.env.user)

修改

使用以下代码,我们也可以获得用户ID。

approved_by = fields.Many2one('res.users','Approved By', default=lambda self: self.env.uid)

答案 2 :(得分:1)

您可以使用以下代码:

context = self._context
current_uid = context.get('uid')
user = self.env['res.users'].browse(current_uid)