2017-02-13 3 views
2

Odoo 10에서는 (새로운 스튜디오 기능을 사용하여) 내 자신의 사용자 지정 응용 프로그램을 만들었지 만 다른보기에 속한 레코드간에 데이터를 계산할 때 문제가 발생했습니다.Odoo 10 - 연결된 레코드의 값 계산하기

시나리오에서는 모델 B의 레코드가 many2one 관계 필드를 통해 모델 A의 레코드에 연결되는 두 개의 모델 (모델 A와 모델 B)이 있습니다. 모델 B에는 입력 된 숫자 값을 계산하는 입력란이 있습니다.

이상적으로 내가하고자하는 목표는 Automated Action/Server Action의 일부 양식을 가지고 모델 A의 레코드를 반복 한 다음 모델 B의 관련 레코드를 반복하여 앞에서 언급 한 숫자 값 필드의 값을 더하는 것입니다. 다음 레코드로 계속하기 전에 모델 A의 필드 값을 등가 번호와 동일하게 설정합니다. 예 위해서

필드 이름을 말할 - 모델링에 ID 필드 = x_id_field
-
모델 A = x_a
계산 값 대상 필드 = x_compute

모델 B = x_b
- many2one 필드 = x_a_id
- 숫자 필드 = x_value_field

자동화 된 액션을 사용하여 일부 기본 파이썬 코드를 실행하려고 시도했습니다. (중첩 된 루프만큼 간단하다고 생각했기 때문입니다.) 그러나 모든 시도는 odoo의 레코드를 통해 루프하는 방법에 익숙하지 않아 실패했습니다. 다른 모델과 레코드 (파이썬에서)에 액세스하는 방법.

어떻게해야합니까? 내가 달성하고자하는 것을 이상적으로

답변

1

은 모델 A의 레코드를 루프 자동 액션/서버 작업의 형태를 가지고있다, 는 함께의 값을 추가 모델 B에서 관련 기록을 통해 루프 앞에서 언급 한 숫자 값 필드를 사용하고 을 다음 레코드로 계속 진행하기 전에 모델 A의 필드 값 을 같음 숫자와 같게 설정합니다. 서버 작업

model_b_records = self.env['model_b'].search([('many2one_field', '!=', False)]) 

for record in model_b_records: 
    record.many2one_field.target_field_for_computed_value = record.numerical_field 

저장을하고 실행 :

은 관련 문서 모델 = 작업 탭에서 가 서버 작업을 만들 모델과 자동화 된 작업을 만듭니다.

질문은 주저하지 않으므로 아래에서 질문하고 설명하십시오.