문제

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에 레코드를 삽입 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top