2017-02-13 61 views
2

在Odoo 10中,我創建了自己的自定義應用程序(使用新的工作室功能),但是我遇到了試圖計算屬於不同視圖的記錄之間的數據的問題。Odoo 10 - 計數鏈接記錄的值

在場景中,我有兩個模型(模型A和模型B),其中來自模型B的記錄通過many2one關係字段連接到來自模型A的記錄。模型B中有一個字段計入輸入的數值。

理想情況下,我想實現的是某種形式的自動操作/服務器操作,它循環訪問模型A中的記錄,然後遍歷模型B中的相關記錄,並將前面提到的數值字段的值相加並在繼續到下一個記錄之前,將模型A中的字段值設置爲相等數字。

例如起見說字段名稱是:
模型A = x_a
- 模型的ID字段= x_id_field
- 目標對計算值字段= x_compute

模型B = x_b
- many2one字段= x_a_id
- 數值字段= x_value_field

我試圖使用自動操作來執行一些基本的Python代碼(因爲我認爲這將會像嵌套循環一樣簡單),但是由於不熟悉如何循環訪問odoo中的記錄而導致我所有的嘗試都失敗了,如何訪問其他模型及其記錄(來自python)。

我該如何去做到這一點?

回答

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 

保存服務器操作和執行。

該代碼應該是不言自明的,因爲任何問題都不要猶豫,在下面提問並發表評論。