2017-10-13 1 views
2

여러 개의 Many2Many 필드를 추가 한 project.project 모듈을 상속 받고 있습니다 : 'Buyers', 'Sellers', 'Contacts'등 모두 res와 관련이 있습니다. 파트너. 필드 중 하나에 여러 레코드를 추가하는 경우 (예 : 일부 구매자 추가) 이 구매자는 판매자, 연락처 필드에서도 자동으로 채워집니다.단일 모델의 여러 개의 many2many 또는 One2many 필드를 가진

어떤 생각이 나는 이것을 방지 할 수 있습니다, 왜 many2many project_id 및 res_partner_id 테이블을 만들고 판매 업체, 구매자 또는 연락처 필드에서 만든 알고 모르기 때문에 이것이 일어나는 이유를 이해합니다.

미리 감사드립니다.

답변

4

Many2Many 필드의 테이블 이름을 지정 했습니까? 속성 "relation"을 가지고 있기 때문에, 동일한 두 필드 이름을 항상 전달했기 때문입니다. 테이블은 기본적으로 같은 이름으로 항상 생성됩니다.

해설 : 귀하의 경우

는 당신이

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', 
) 
Odoo이 같은 이름을 가진 두 개의 테이블을 생성합니다

. "partner_id_project_id_rel". 하나의 Many2Many에서 레코드를 생성하는 순간에 동일한 테이블이 업데이트됩니다.

그러나 관계 이름을 지정하는 경우. 다른 이름을 가진 두 개의 테이블이 생성됩니다. 이렇게

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', 
) 
관련 문제