2017-02-13 18 views
2

は、しかし、私は別のビューに属するレコード間のデータを計算しようとして問題に遭遇してきました。シナリオにおいてOdoo 10 - 私は(新しいスタジオの機能を使用して)私自身のカスタムアプリケーションを作成しているOdoo 10にリンクされたレコードのカウント値

Iは、モデルBのレコードがmany2oneリレーショナルフィールドを介して、モデルAのレコードに接続された2つのモデル(モデルAとモデルB)を有します。モデルBには、入力された数値を数えるフィールドがあります。

私が達成したいのは、モデルAのレコードをループし、モデルBの関連レコードをループして前述の数値フィールド次のレコードに進む前に、モデルAのフィールドの値を等価数に設定します。 - モデルA IDフィールド= x_id_field
- 計算された値のターゲット・フィールド= x_compute

モデルB = x_b = X_A

モデルA:例便宜上

は、フィールド名があると言います
- many2oneフィールド= x_a_id
- 数値フィールド= x_value_field

私は自動アクションを使っていくつかの基本的なPythonコードを実行しようとしましたが(これはネストされたループのように単純だと思っていたからです)、odooのレコードをループする方法を熟知していないため、他のモデルとそのレコードにアクセスする方法(Pythonから)私はこれを達成するに行くかどう

答えて

1

理想的には私が達成したいものをモデルA、 内のレコードをループ自動 アクション/サーバーアクションは、その後、一緒の 値を追加するモデルBに関連レコードをループのいくつかのフォームを持っています以前に数値フィールドを挙げると次のレコードに継続 前に、モデル同等数に等しいフィールドの 値を設定します。サーバーアクション

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 

保存し、それを実行します。

は、関連ドキュメントモデル= [アクション]タブで は、サーバーアクションを作成するモデルと自動化されたアクションを作成します。

ご質問が尋ねると、下記のコメントすることを躊躇しないためのコードは、自己説明する必要があります。

関連する問題