Odoo Reload按钮点击后重新加载

6
我希望在单击按钮时重新加载odoo页面。我尝试了以下方法:
  • object_name.refresh()
  • return {'tag': 'reload'}
但是它没有起作用。
请问如何实现重新加载页面?
5个回答

7
在你的返回值中添加 'type': 'ir.actions.client',例如:
return {
      'type': 'ir.actions.client',
      'tag': 'reload',
}

1

当按钮被点击时返回视图,为此您需要在按钮单击时调用方法,并在该方法内编写以下代码:

@api.multi
def reload_page(self):
    model_obj = self.env['ir.model.data']
    data_id = model_obj._get_id('module_name', 'view_id')
    view_id = model_obj.browse(data_id).res_id
    return {
        'type': 'ir.actions.act_window',
        'name': _('String'),
        'res_model': 'model.name',
        'view_type' : 'tree',
        'view_mode' : 'form',
        'view_id' : view_id,
        'target' : 'current',
        'nodestroy' : True,
    }
<button type="object" name="reload_page" string="Reload Page" />

0

你可以尝试使用ActionManager扩展,该扩展应该在你的模块中的JS文件中定义。

for Example : 'static/src/js/your_module_name.js'

将以下 JS 代码放置:
openerp.your_module_name = function (instance) {
   instance.web.ActionManager = instance.web.ActionManager.extend({
       ir_actions_act_close_wizard_and_reload_view: function (action, options) {
           if (!this.dialog) {
               options.on_close();
           }
           this.dialog_stop();
           this.inner_widget.views[this.inner_widget.active_view].controller.reload();
           return $.when();
       },
   });
}

将动作调用到按钮操作中

return { 'type' :  'ir.actions.act_close_wizard_and_reload_view' }

希望我的回答能对你有所帮助 :)


-1

尝试一下这个,可能会对你有帮助

'res_model': '需要重新加载的模型名称',


-1

在按钮的函数内部只需写入"pass"即可。

Def button_refresh():
    pass

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接