You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo14社区版:点击查看One2many明细后如何关闭表单视图?

解决Odoo 14 One2many弹窗无法关闭的问题

方案1:使用客户端动作关闭弹窗并同步主视图

将按钮对应Python方法里的返回语句替换为:

return {
    'type': 'ir.actions.client',
    'tag': 'reload',
}

该动作会直接关闭当前弹窗,同时自动刷新主表单视图,确保One2many字段的数据同步更新。

方案2:明确指定关闭当前窗口

若仅需关闭弹窗无需刷新主视图,可尝试返回带target参数的动作:

return {
    'type': 'ir.actions.act_window_close',
    'target': 'current',
}

target='current'会明确指定关闭当前激活的弹窗窗口,避免动作作用范围模糊。

方案3:通过JavaScript强制关闭弹窗(复杂场景适配)

如果上述Python方案仍不生效,可在按钮的视图定义中添加onclick事件,调用客户端API直接关闭弹窗:

<button name="your_method_name" string="处理" type="object" onclick="odoo.action_manager.closeDialog()"/>

此方式会直接触发弹窗关闭,同时不影响Python方法的业务逻辑执行。

注意事项

  • 确保按钮的type属性设置为object,保证能正确调用后端Python方法。
  • 若业务处理涉及数据修改,必要时可在方法末尾添加self.env.cr.commit()(仅复杂场景下使用,Odoo通常会自动处理事务)。

内容的提问来源于stack exchange,提问作者holydragon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 09:52:02