【问题标题】:Odoo 13: Check if a user has only a single related employeeOdoo 13:检查用户是否只有一个相关员工
【发布时间】:2021-01-14 11:45:57
【问题描述】:

我需要检查某个用户是否关联了一个且只有一个员工。

到目前为止,我有这个:

def _employee_get(obj, cr, uid, context=None):
    ids = obj.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)], context=context)
    if ids:
        if len(ids) > 1:
            return False
        else:
            return ids[0]
    else:
        return False

class History(models.Model):
    _name = 'hospital.history'
    _description = 'hospital.history'

    date = fields.Date(required=True, default=fields.Date.today(), readonly=True)
    name = fields.Many2one('res.partner', string="Patient", required=True)
    healthworker = fields.Many2one('hr.employee', string='Sanitarian', default=_employee_get, readonly=True)
    testresults = fields.Text(string="Tests' Results")
    description = fields.Text(string="Description", required=True)
    specialities_ids = fields.Many2many('hospital.speciality', 'hospital_speciality_history_rel', 'history_id', 'speciality_id', 'Speciality')
    status = fields.Selection([('admitted','Admitted'),('outpatient','Outpatient Clinic')], 'Status', required=True)

但是当我调用这个函数时,我得到了这个错误:

TypeError:_employee_get() 缺少 2 个必需的位置参数:'cr' 和 'uid'

尝试了几种不同的方法,但无法使其正常工作,因此我们将不胜感激。

【问题讨论】:

    标签: module self odoo-13 uid


    【解决方案1】:

    阿尔法,

    你已经在新版本odoo(13)中执行了old代码。

    这个_employee_get方法应该是这样的:

    def _employee_get(self):
        return self.env['hr.employee'].search([('user_id', '=', uid)], limit=1)
    

    【讨论】:

    • 非常感谢@Dipen Shah,非常感谢您的回答。
    猜你喜欢
    • 2022-06-17
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 2015-08-02
    相关资源
    最近更新 更多