销售发票状态的 Odoo onchange 事件。订单未触发

问题描述 投票:0回答:1

有谁知道为什么下面编码的 onchange 事件没有按预期触发?当创建新的销售订单时(保存之前),它仅触发一次。发票状态实际上正在改变(在树视图中可以确认)。预期的行为是每次更改都会触发该事件。

import logging
from odoo import api, fields, models, _

_logger = logging.getLogger(__name__)


class SaleOrder(models.Model):
    _inherit = "sale.order"


    @api.onchange('invoice_status')
    def _onchange_invoice_status(self):
        _logger.warning("Invoice status: %s" % self.invoice_status)
python odoo odoo-17
1个回答
0
投票

Odoo 中的

@api.onchange()
装饰器旨在当用户界面中字段的值发生更改时触发方法。当您通过 UI 更改字段值时,将调用用
@api.onchange()
修饰的方法。但是,如果以编程方式(例如通过代码)更改字段值,则不会触发
@api.onchange()
方法,除非您在代码中显式调用它。

在您的情况下,第一个更改是通过 UI 完成的,第二种情况是通过代码修改销售订单状态。

© www.soinside.com 2019 - 2024. All rights reserved.