如何在res.user中调用res.partner的创建功能?



当我创建一个用户时,会自动创建一个res.partner对象。所以,我想添加一个 many2one 字段到 res.partner 类。我继承了 res.partner 类并覆盖了创建方法。

当我使用 pdb.set_trace 进行调试时,部门 ID 没有值。我想做的是在调用 res.partner 的创建函数之前将 Departmentid 添加到"值"字典中。谢谢

类 ResPartner(模型。型号(: ... department_id = 字段。Many2one('hr.Department', 'Department'(

查看此代码。

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)

我知道您希望在创建用户时创建一个具有某些部门价值的合作伙伴。为此,您必须在用户中提及部门。您必须在部门用户中创建一个新字段"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 用户表单视图中选择一个部门。

最新更新