Python 许多字段与另一个模型相关

Python 许多字段与另一个模型相关,python,odoo,odoo-12,Python,Odoo,Odoo 12,我试图在联系人模型中创建一个多个字段,该字段在用户模型中始终具有相同的值,如company\u id 我在找Anwserw,但他们对这个话题有两句话,没有明确解释。 其他来源似乎自相矛盾,因为一些人说相关的存储字段不更新,而另一些人说它们更新 毕竟我不知道自己创建一个的语法,因为dosc写得太差了 我有一段代码: #-*-编码:utf-8-*- 来自odoo导入模型、字段、api 类自定义\u合作伙伴\u字段(models.Model): _继承='res.partner' company\u

我试图在联系人模型中创建一个多个字段,该字段在用户模型中始终具有相同的值,如
company\u id

我在找Anwserw,但他们对这个话题有两句话,没有明确解释。 其他来源似乎自相矛盾,因为一些人说相关的存储字段不更新,而另一些人说它们更新

毕竟我不知道自己创建一个的语法,因为dosc写得太差了

我有一段代码:

#-*-编码:utf-8-*-
来自odoo导入模型、字段、api
类自定义\u合作伙伴\u字段(models.Model):
_继承='res.partner'
company\u id=fields.Many2many(comodel\u name='res.company',string='Related users Allowed companys',readonly=True)

它正在创建联系人模型内的字段,现在我需要一些东西来填充它。最好不使用onchange方法或自动操作(我现在有自动操作-通过开发者UI创建)。

创建或编辑用户记录后,只需在partner record中设置字段即可

\uuuu inherit='res.users'
@api.model
def创建(自身、VAL):
res=super(类名,self).create(VAL)
res.partner\u id.company\u id=res.company\u id
返回res
@api.multi
def写入(自身、VAL):
super(类名,self).write(VAL)
#如果我们编辑公司ID,我们也会编辑合作伙伴
如果VAL中有“公司ID”:
#使用mapped调用写入一次以提高性能
self.mapped('partner_id')。write({'company_id':vals['company_id']})
返回真值
因此,当您在user中编辑
公司ID
时,您也会对相关合作伙伴执行相同的操作

这对新用户肯定有效,但我认为您需要处理现有用户
通过脚本或某种解决方案来填充字段。

您能举一个例子说明应该填写什么吗?我真的不明白这个要求。Model
Users
有一个字段
company\u id
,该字段为特定用户保留允许的公司。例如,UserA可以有两个允许的公司:CompanyX和CompanyY。我需要在
联系人
模型中也包含此信息,以便将其用于记录规则。只需简单地将值从用户内部的字段复制到联系人内部的字段。如果我可以通过其他方式从联系人访问此用户字段,但不知道如何访问,则无需这样做。归根结底,联系人模型并不是只有一个相关用户的id,而是有奇怪的one2many关系。你能解释一下,你想用这个记录规则实现什么吗?我想更改联系人的全局记录规则,以便它取决于允许的公司,而不是当前的公司。下面是我发布的github问题:现在我只想将配置移到自定义模块中。因此,我需要用代码创建该字段,并可能更改它获取其值的方式(以自动操作的方式)。它工作了!在使用类名时遇到了一些问题,因为我不知道
super
中的类在覆盖方法时应该与我的新类相同。我创建了类
Users
,并在
super
中使用它。我用解决了现有用户的问题。启用此自动操作后,我转到一个用户列表,检查所有用户并单击“取消归档”。这导致了一个更新并触发了一个自动操作,该操作用值填充了我的新字段