在 Odoo 中获取登录用户的员工 ID - 8

Getting the Employee id of the Log User in Odoo - 8

美好的一天,我在过滤 Odoo 8 字段时遇到问题 我只想 Select 日志用户的员工 ID 我只是将其添加到我的 XML

<field name="employee_id" style = "width:500px" domain = "[('id', '=', user.id.employee_id.id)]" options="{'no_create': True}"/>

但是我有一个错误提示

未捕获错误:NameError:未定义名称 'user'。

在 Odoo 8 中是否有正确的方法来获取日志用户的员工 ID?

您可以尝试使用以下域:

替换您的代码

[('id', '=', user.id.employee_id.id)]

[('employee_id.user_id','=',user.id)]

这将过滤员工的用户。根据登录用户,过滤员工用户。

为了获取登录用户的员工,我这样做:

resource = self.env['resource.resource'].search([('user_id','=',self.env.user.id)])
employee = self.env['hr.employee'].search([('resource_id','=',resource.id)])

当然不容易放在一个域中,所以也许你可以使用一个存储的计算字段来保存你table中员工的user_id,然后你可以写这样的域:

[('user_id', '=', uid)]

可以用更简单的方式完成。 试试这个 .py 文件

employee_id = fields.Many2one('hr.employee', string=u"Employé", readonly=True, store=True, default=_employee_get)

def _employee_get(self):
    record = self.env['hr.employee'].search([('user_id', '=', self.env.user.login)]) 
    return record[0]