[英]Many2many field related to another model
我試圖在Contact模型內創建一個many2many字段,該字段始終具有與Users模型內的company_ids
相同的值。
我一直在尋找輔助詞,但是odoo文檔對這個主題有兩句話,並且不能明確解釋。 其他來源似乎與自己矛盾,因為有些人說相關的存儲字段未更新,而另一些人則說這樣做。
畢竟我不知道創建自己的語法,因為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
,您都需要對相關合作伙伴執行相同的操作。
當然,這將對新用戶有效,但我認為您需要通過腳本或某種解決方案來處理現有用戶,以填寫該字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.