当前位置: 首页 > 面试题库 >

Odoo-防止按钮关闭向导

孙嘉悦
2023-03-14
问题内容

我有一个充当对话框的过渡模型。在我的表单视图中,我有一个像这样的按钮:

<footer states="partnerId">
   <button name="check_tax_id" string="Tovább" type="object"/>
</footer>

该按钮调用此函数(我可以确认它实际上已调用):

@api.one
    def check_tax_id(self, context=None):
        self.state = "partnerDetails"

        return None;

我的问题是,一旦单击此按钮,对话窗口将立即关闭!我究竟做错了什么?


问题答案:

解决方案0

@api.multi
def check_tax_id(self):
    self.ensure_one()
    self.name = "New name"
    return {
        "type": "ir.actions.do_nothing",
    }

Tadeusz
Karpinski在此提供了此解决方案。

解决方案1

您可以返回具有相同记录ID的新表格。

@api.multi
def check_tax_id(self):
    self.ensure_one()
    self.name = "New name"
    return {
        'context': self.env.context,
        'view_type': 'form',
        'view_mode': 'form',
        'res_model': 'model_name',
        'res_id': self.id,
        'view_id': False,
        'type': 'ir.actions.act_window',
        'target': 'new',
    }

解决方案2

您可以在jQuery中创建小部件。这将打开向导,您可以将所需的行为手动分配给按钮。您也可以使用该call函数来调用python函数:

[...]

new instance.web.Dialog(this, { 
    title: _t("Title"), 
    width: '95%', 
    buttons: [
          { text: _t("First button"), click: function() { self.first_button(); }}, 
          { text: _t("Second button"), click: function() { self.second_button(); }},
          { text: _t("Close"), click: function() {  dialog.close(); }},                       
      ],
});

[...]

解决方案3

当然,您也可以覆盖create方法,以避免在某些情况下创建记录

解决方案4

最后一个选择。创建带有状态字段的工作流。创建工作流程按钮以发送信号以更改状态。您可以使用attrs属性和状态字段显示或隐藏其余字段。但是我不知道这是否适合您的需求。



 类似资料:
  • 问题内容: 我有一个EditText用于输入的对话框。当我单击对话框上的“是”按钮时,它将验证输入,然后关闭对话框。但是,如果输入错误,我希望保留在同一对话框中。每次无论输入什么,当我单击“否”按钮时,都应自动关闭对话框。如何禁用此功能?顺便说一句,我在对话框上的按钮上使用了PositiveButton和NegativeButton。 问题答案: 编辑:这仅在API 8+上有效,如某些注释所述。

  • 我有一个Jframe窗口,里面有一个按钮。通过单击该按钮,它将打开一个新的JFrame窗口。但是当我关闭这个窗口时,它会自动用按钮关闭第一个Jframe窗口。当我关闭第二个Jframe窗口时,如何防止第一个Jframe窗口关闭?

  • 问题内容: 在我的React组件中,我有一个按钮,当单击该按钮时,它会通过AJAX发送一些数据。我只需要第一次发生,即在首次使用后禁用该按钮。 我如何尝试做到这一点: 我认为发生的事情是状态变量没有立即更新,这是React文档所说的预期。 我如何强制按钮被禁用或在单击按钮时立即消失? 问题答案: 您可以做的是单击该按钮后将其禁用,然后将其保留在页面中(不可单击的元素)。 为此,您必须向按钮元素添加

  • 在React组件中,我有一个按钮,用于在单击时通过AJAX发送一些数据。我只需要第一次使用,即在第一次使用后禁用按钮。 我是如何做到这一点的: 我认为发生的是状态变量没有立即更新,React文档说这是预期的。 我如何强制按钮在被点击的瞬间被禁用或完全消失?

  • 嗨,我有一个jFrame,我想问问用户,当单击close按钮时,他是否确定要关闭jFrame: 当他从jpanel弹出窗口中选择“否”按钮时,我该如何撤消关闭操作?

  • 如何让我的动作监听器单击按钮并将按钮文本显示到文本区域? 在actionlistener之后初始化,因此当我尝试定义

  • 当用户试图关闭页面时(单击浏览器窗口上的X按钮或离开页面),我需要发送一条消息,如“确定吗?”并执行一些操作。 我正在使用离子3,这是我的配置 cli包:(/home/ubuntu/workspace/mHS/node_modules) 全球套餐: 本地套餐: 系统: 杂项: 我尝试了不同的方法,但没有成功: 1-离子生命周期钩 2-主机侦听器 } 3-超文本标记语言 我错过了什么?

  • 问题内容: 你好, 我正在使用Java Swing,并且想在单击按钮时关闭一个窗口。我不知道使用动作侦听器作为执行此操作的最佳方法,但是目前我正在编译错误,因此它一定是不正确的。 这是我的代码: 我遇到的问题是列出的最后一个类,它实际上只是关闭当前窗口,因此再次显示主菜单屏幕。我需要在该类中创建的静态引用。但是将其更改为静态是无效的修饰符吗? 我该如何解决? 问题答案: 试试这个 并发送一个实例给