簡體   English   中英

與另一個模型相關的Many2Many字段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM