与另一个模型相关的 Many2many 字段
Many2many field related to another model
我正在尝试在 Contact 模型中创建一个 many2many 字段,它与 Users[= 中的 company_ids
具有相同的值26=] 模型在任何时候。
我正在寻找答案,但 odoo docs 有两句话关于这个主题,并且没有明确解释。
其他来源似乎自相矛盾,因为有些人说相关的存储字段不会更新,而另一些人则说他们会更新。
毕竟我不知道自己创建一个的语法,因为 dosc 写得太差了。
我有这段代码:
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class custom_partner_fields(models.Model):
_inherit = 'res.partner'
company_ids = fields.Many2many(comodel_name='res.company', string='Related users Allowed companies', readonly=True)
它正在 Contact 模型中创建字段,现在我需要一些东西来填充它。最好不要使用 onchange 方法或自动操作(我现在有自动操作 - 通过创建开发人员 UI).
只需在创建或编辑用户记录后在合作伙伴记录中设置字段即可
__inherit = 'res.users'
@api.model
def create(self, vals):
res = super(TheClassName, self).create(vals)
res.partner_id.company_ids = res.company_ids
return res
@api.multi
def write(self, vals):
super(TheClassName, self).write(vals)
# if we edited company_ids we edit partners too
if 'company_ids' in vals:
# use mapped to call write one time good for performance
self.mapped('partner_id').write({'company_ids': vals['company_ids']})
return True
因此,当您在用户中编辑 company_ids
时,您也会为相关合作伙伴做同样的事情。
这肯定适用于新用户,但我认为您需要处理现有用户
通过脚本或一些解决方案来填充字段。
我正在尝试在 Contact 模型中创建一个 many2many 字段,它与 Users[= 中的 company_ids
具有相同的值26=] 模型在任何时候。
我正在寻找答案,但 odoo docs 有两句话关于这个主题,并且没有明确解释。 其他来源似乎自相矛盾,因为有些人说相关的存储字段不会更新,而另一些人则说他们会更新。
毕竟我不知道自己创建一个的语法,因为 dosc 写得太差了。
我有这段代码:
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class custom_partner_fields(models.Model):
_inherit = 'res.partner'
company_ids = fields.Many2many(comodel_name='res.company', string='Related users Allowed companies', readonly=True)
它正在 Contact 模型中创建字段,现在我需要一些东西来填充它。最好不要使用 onchange 方法或自动操作(我现在有自动操作 - 通过创建开发人员 UI).
只需在创建或编辑用户记录后在合作伙伴记录中设置字段即可
__inherit = 'res.users'
@api.model
def create(self, vals):
res = super(TheClassName, self).create(vals)
res.partner_id.company_ids = res.company_ids
return res
@api.multi
def write(self, vals):
super(TheClassName, self).write(vals)
# if we edited company_ids we edit partners too
if 'company_ids' in vals:
# use mapped to call write one time good for performance
self.mapped('partner_id').write({'company_ids': vals['company_ids']})
return True
因此,当您在用户中编辑 company_ids
时,您也会为相关合作伙伴做同样的事情。
这肯定适用于新用户,但我认为您需要处理现有用户 通过脚本或一些解决方案来填充字段。