2 回答

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
在 odoo V13 中,您必須將值分配給計(jì)算字段,而不是pass
需要添加else
語句并分配默認(rèn)值
else: self.discount_mount = 0.0
我知道這很清楚,如果我們沒有折扣,那么該字段應(yīng)該是 0.0,但 odoo 希望你這樣做

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
在任何情況下都需要為非存儲(chǔ)計(jì)算字段分配一個(gè)值,即使它是假的,如果在計(jì)算方法期間未分配,計(jì)算存儲(chǔ)字段將保留其先前的值,因此不要依賴任何預(yù)期的默認(rèn)值價(jià)值。
裝飾api.one
器被移除,現(xiàn)在默認(rèn)為多記錄。您只需從代碼中刪除裝飾器并循環(huán)self
(這在您的示例中已經(jīng)完成)。
如果它使用其他字段的值,則應(yīng)使用depends()指定這些字段。
您需要將product_id
and替換price_subtotal
為price_unit
and?product_uom_qty
。
當(dāng)discount
是 時(shí)0.0
,也discount_mount
應(yīng)該是0.0
并且在您的表達(dá)式中,您將折扣除以然后100
進(jìn)行乘法。discount
如果的值為0.0
,則不會(huì)有問題,表達(dá)式將被計(jì)算為0.0
并且discount_mount
字段將設(shè)置為0.0
這意味著您可以刪除if
表達(dá)式:
if?rec.discount:
添加回答
舉報(bào)