我使用Odoo V10中的UI在product.product
模型上定義了一個新字段。該字段被定義如下:如果store = True,則Odoo相關字段不更新
Name = x_sellable_inventory
Type = float
Readonly = true
Dependencies = qty_available,outgoing_qty
的計算方法是:
for record in self:
record['x_sellable_inventory'] = record.qty_available - record.outgoing_qty
我加入該域爲一個視圖,並確認它正在改變正確如果現有庫存被調整爲產品。到目前爲止,一切都按預期工作。
現在,我希望能夠從sale.order.line
訪問此值,所以我在sale.order.line
上創建了一個相關字段來訪問它。它的定義是這樣的:
Name = x_product_sellable_inventory_new
Type = float
Readonly = true
Stored = true
Related Field = product_id.x_sellable_inventory
我加入這個領域的銷售訂單視圖,以便我可以在訂單行列表中看到它。它對樹中的每個訂單行都會出現一次。
現在,當我更改產品的現有數量時,它仍然在產品視圖上正確更新,但銷售訂單行上的值永遠不會更改。從設置它的最初時間開始它永遠不會改變。
如果我取消選中Store
選項,值會正確更新。這裏發生了什麼?爲什麼相關字段是否存儲很重要?不應該在product_id.x_sellable_inventory
的值發生變化時得到更新?
謝謝。我在詢問一個「相關」字段,而不是「計算」。這有什麼區別嗎?根據這些文檔:http://odoo-new-api-guide-line.readthedocs.io/en/latest/fields.html#related-field它說:「設置商店kwarg會自動存儲在數據庫中的值。使用新API時,相關字段的值將自動更新,甜蜜。「我在這裏錯過了什麼?另外,如果'store = True',你的答案是不是意味着對計算字段的依賴關係是不相關的?由於該字段不會自動重新計算,所以依賴性更改不起作用。 – flyingL123
我不確定文檔是否正確。不過,我相信這個原則依然存在。您應該能夠使用此解決方法的一些變體更新您希望的字段。我的理解是,store = True只會觸發一次。不管文檔說什麼。 –
因此,依賴關係對存儲的計算字段沒有任何作用嗎?我是Odoo的新手,試圖學習所有這些錯綜複雜的東西。感謝您的幫助。 – flyingL123