2015-06-12 7 views
3

Я хочу перезагрузить страницу в odoo одним нажатием кнопки. Я попытался это:Odoo Reload on button click

  • object_name.refresh()
  • return {'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, 
    } 

Xml код кнопки,

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

Можете ли вы показать определение 'api.multi'? –

+0

В XML мой тип кнопки - это рабочий процесс, поэтому он не работает как таковой –

+0

Это не работает для '' view_mode ':' tree'' – Miquel

0

Просто напишите «pass» внутри функции кнопки. Например:

Def button_refresh(): 
    pass 
-1

Просто попробуйте это, может помочь вам

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

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' } 

Я надеюсь, что мой ответ может помочь вам :)

0

добавить 'типа': 'ir.actions.client' в вашем обратном случае:

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