2017-10-13 1 views
2

私は複数のMany2Manyフィールドを追加したproject.projectモジュールを継承しています: 'バイヤー'、 '売り手'、 '連絡先'など すべてres。パートナー。フィールドの1つに複数のレコードを追加するとわかります。たとえば、購入者を追加します。これらのバイヤーは自動的に売り手、連絡先フィールドに記入されます。シングルモデルの複数のmany2manyまたはOne2manyフィールドの

私はこれを防ぐことができますどのようなアイデア、私はmany2manyがproject_idとres_partner_idでテーブルを作成し、それが売り手、バイヤーまたは連絡先フィールドから作成されたかどうかを知らないので、

ありがとうございます。

答えて

4

Many2Manyフィールドにテーブル名を指定しましたか?あなたが常に同じ2つの関連するフィールド名を渡した場合、属性 "relation"を持つ。テーブルはデフォルトで同じ名前で常に作成されます。

解明:あなたはOdooは、同じ名前を持つ2つのテーブルを作成します

sellers_ids = fields.Many2many(
    comodel_name='res.partner',column1='partner_id', column2='project_id', 
) 

contact_ids = fields.Many2many(
    comodel_name='res.partner',column1='partner_id', column2='project_id', 
) 

持っているあなたの場合

。 "partner_id_project_id_rel"。あるMany2Manyでレコードを作成する瞬間に、同じテーブルが更新されます。

ただし、リレーション名を指定した場合。異なる名前の2つのテーブルが作成されます。このような。

sellers_ids = fields.Many2many(relation='sellers_project_rel', 
    comodel_name='res.partner',column1='partner_id', column2='project_id', 
) 

contact_ids = fields.Many2many(relation='contact_project_rel', 
    comodel_name='res.partner',column1='partner_id', column2='project_id', 
) 
関連する問題