创建用户时,会自动创建一个res.partner对象。因此,我想在res.partner类中添加一个many2one字段。我继承了res.partner类并覆盖了create方法。
当我使用pdb.set_trace调试时,departmentid没有值。我想做的是在调用res.partner的create函数之前,将departmentid添加到“值”字典中。谢谢
类ResPartner(models.Model): ... department_id = field.Many2one('hr.department','Department')
答案 0 :(得分:0)
签出此代码。
class ResPartner(models.Model):
_inherit = 'res.partner'
@api.model
def create(self, vals):
if self.department_id:
vals['department_id'] = self.department_id
return super(ResPartner, self).create(vals)
答案 1 :(得分:0)
我了解您想在创建用户时创建具有某些部门价值的合作伙伴。为此,您必须提及用户部门。您必须像在合作伙伴中一样在部门用户中创建一个新字段'department_id'。并在合作伙伴创建函数中编写以下代码
@api.model
def create(self,vals):
if vals.get('user_id',False):
user_id = self.env['res.users'].browse(vals.get('user_id',False))
vals.update({'department_id': user_id.department_id and user_id.department_id.id or False})
return super(ResPartner, self).create(vals)
编辑1: 请在res用户中创建一个新字段,如下所示:
department_id = field.Many2one('hr.department', related="partner_id.department_id", 'Department')
然后,您只需避免创建函数。此字段声明可以解决您的问题,还可以从res用户表单视图中选择一个部门。