在费用方面,任何人都必须批准费用清单,我想显示哪个用户被批准了?
我只选择所有res.users作为one2many
approved_by=fields.Many2one('res.users','Approved By')
在XML
中<field name="approved_by" />
此处将显示所有用户。但我想只显示已登录的用户,必须将其选为默认用户。
答案 0 :(得分:4)
在字段上定义默认值,默认值将是一个返回当前用户ID的函数,可以使用self.env.uid
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)