gpt4 book ai didi

python - Odoo - 防止按钮关闭向导

转载 作者:太空狗 更新时间:2023-10-29 19:31:06 26 4
gpt4 key购买 nike

我有一个用作对话的 transient 模型。在我的表单 View 中,我有一个这样的按钮:

<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",
}

此解决方案已提供 here塔德乌什·卡尔平斯基 (Tadeusz Karpinski) 着。

解决方案一

您可以返回具有相同记录 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',
}

方案二

您可以在 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(); }},
],
});

[...]

方案三

当然你也可以重写create方法,避免某些情况下记录的创建

方案四

最后一个选项。创建带有状态字段的工作流。创建工作流按钮以发送信号以更改状态。您可以使用 attrs 属性和 state 字段显示或隐藏其余字段。但是不知道能不能满足你的需求。

关于python - Odoo - 防止按钮关闭向导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31963214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com