Odoo Reload点击按钮

时间:2015-06-12 12:48:09

标签: python python-3.x odoo odoo-8

我想点击按钮重新加载odoo中的页面。我试过这个:

  • object_name.refresh()
  • return {'tag': 'reload'}

但它不起作用。

我怎样才能得到它?

5 个答案:

答案 0 :(得分:2)

添加'输入':' ir.actions.client'在您的回报中:

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

答案 1 :(得分: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,
    }

按钮的Xml代码,

<button type="object" name="reload_page" string="Reload Page" />

答案 2 :(得分:0)

只需在按钮功能内写“通过”即可。 例如:

undefined method `capitalize' for nil:NilClass

答案 3 :(得分: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' }

我希望我的回答可以帮到你:)。

答案 4 :(得分:-1)

试试这个,可以帮到你

'res_model':'your.model.to.reload',