Many2many odoo에 삽입(이전 openerp)
-
28-10-2019 - |
문제
odoo(이전 OpenERP)의 Many2many 또는 one2manhy 관계 테이블에 값을 삽입하려고 합니다.이 작업을 수행하는 방법을 알고 있습니까?
해결책
다음은 재고 모듈:
invoice_line_id = invoice_line_obj.create(cursor, user, {
'name': name,
'origin': origin,
'invoice_id': invoice_id,
'uos_id': uos_id,
'product_id': move_line.product_id.id,
'account_id': account_id,
'price_unit': price_unit,
'discount': discount,
'quantity': move_line.product_uos_qty or move_line.product_qty,
'invoice_line_tax_id': [(6, 0, tax_ids)],
'account_analytic_id': account_analytic_id,
}, context=context)
self._invoice_line_hook(cursor, user, move_line, invoice_line_id)
그만큼 invoice_line_tax_id
필드는 다대다 관계이며 (6, 0, tax_ids)
기존 레코드를 다음 레코드로 바꾸는 것을 의미합니다. tax_ids
.네가 전화하니까 create()
, 대체할 것이 없습니다.
전체 옵션 목록은 osv 클래스에 대한 문서.
Many2many 필드의 경우 튜플 목록이 필요합니다.다음은 해당 의미론과 함께 허용되는 튜플 목록입니다.
(0, 0, { values })
주어진 값 사전을 사용하여 생성해야 하는 새 레코드에 대한 링크
(1, ID, { values })
id = ID로 연결된 레코드를 업데이트합니다(쓰기 가치 그 위에)
(2, ID)
id = ID로 연결된 레코드 제거 및 삭제(ID에 대해 unlink를 호출하면 개체가 완전히 삭제되고 그에 대한 링크도 삭제됨)
(3, ID)
id = ID로 연결된 레코드에 대한 링크 잘라내기(두 개체 간의 관계를 삭제하지만 대상 개체 자체는 삭제하지 않음)
(4, ID)
id = ID인 기존 레코드에 대한 링크(관계 추가)
(5)
모두 연결 해제(예: 연결된 모든 레코드에 대해 (3,ID) 사용)
(6, 0, [IDs])
연결된 ID 목록을 바꿉니다(예: ID 목록의 각 ID에 대해 (5)를 사용하고 (4,ID)를 사용)
다른 팁
OpenERP에서 다 대다 관계 테이블에 값을 삽입 할 수 있습니다. 위의 예를 참조하십시오.
many2many 필드를 만들 때 다음 구문을 사용했습니다. 라코 디스
이제 u는 다음과 같은 쿼리를 실행하여이 관계에 삽입해야합니다. 라코 디스
여러분의 many2many 필드를보기 (xml 파일)에 넣고 모듈을 실행 한 후 many2many 필드를보고 GUI에 레코드를 삽입 할 수 있습니다.