Odoo 13:检查用户是否只有一个相关员工
Odoo 13: Check if a user has only a single related employee
我需要检查某个用户是否关联了一名且只有一名员工。
到目前为止,我有这个:
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'
已经尝试了几种不同的方法,但无法正常工作,因此非常感谢您的帮助。
阿尔法,
您在新版本 odoo(13)
中执行了 old
代码。
这个_employee_get
方法应该是这样的:
def _employee_get(self):
return self.env['hr.employee'].search([('user_id', '=', uid)], limit=1)
我需要检查某个用户是否关联了一名且只有一名员工。
到目前为止,我有这个:
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'
已经尝试了几种不同的方法,但无法正常工作,因此非常感谢您的帮助。
阿尔法,
您在新版本 odoo(13)
中执行了 old
代码。
这个_employee_get
方法应该是这样的:
def _employee_get(self):
return self.env['hr.employee'].search([('user_id', '=', uid)], limit=1)