从我读到的内容,你无法从onchange函数返回一个动作。但是,当用户在订单行中更改产品时,我想显示某种对话框。目标是检查产品是否包含has_newproduct = True。在这种情况下,我想询问用户是否要删除原始产品(因为不需要)。
我正在重写采购订单行的onchange功能:
class api_advanced(models.Model):
_inherit = "purchase.order.line"
has_newproduct = fields.Boolean("New Product")
@api.onchange('product_id')
def onchange_product_id(self):
_logger.debug("------------------- OLD PRODUCT ID ----------------")
_logger.debug(self._origin.product_id)
_logger.debug(self._origin.has_newproduct)
_logger.debug("------------------- NEW PRODUCT ID ----------------")
_logger.debug(self.product_id)
_logger.debug(self.has_newproduct)
# Code to fire wizard is here but it does nothing...
我如何才能完成类似的事情?或者我必须做一些完全不同的事情?我可以在没有询问的情况下删除产品,但这并不是真正的目标...
答案 0 :(得分:0)
如何打开向导。当你点击按钮odoo调用一个方法, 方法将字典返回给客户端。客户方会 检查返回的值。客户端知道这是一个打开视图的动作。
我试图说这种行为是在javascript中定义的,所以如果你 想要一些像你应该扩展表单视图来处理的东西 来自onchange事件的返回值以打开向导。
或者您只需在树状视图中添加一个按钮,文字 删除orignal产品
该按钮仅在has_newproduct = True
时出现(使用相关字段将其添加到树中,以便您可以在attrs
中使用它)。用户将知道他可以删除orignal
产品,如果他看到该按钮,你可以添加确认消息来解释什么
这是该行动的结果。