View 如何在Odoo 11/12中接收数据后刷新视图
有更好的方法吗 在我看来,我将此添加到record view.xml中:View 如何在Odoo 11/12中接收数据后刷新视图,view,refresh,odoo,View,Refresh,Odoo,有更好的方法吗 在我看来,我将此添加到record view.xml中: <field name="arch" type="xml"> <tree string="Test View" js_class="test_view"> <field name="testField" /> </tree> </field> 我的模块控制器中有: class Reports(http.Controller): @http
<field name="arch" type="xml">
<tree string="Test View" js_class="test_view">
<field name="testField" />
</tree>
</field>
我的模块控制器中有:
class Reports(http.Controller):
@http.route('/test/refresh', type='json', auth="user")
def refresh(self):
return request.env['model.name'].generate_data()
然后,我在上述.js中扩展了基本ListView:
odoo.define('<mymodule>.updateview, function (require) {
var view_registery = require('web.view_registry');
var ListController = require('web.ListController');
var ListView = require('web.ListView');
var TestListController = ListController.extend({
init: function () {
this._super.apply(this, arguments);
var self = this;
this._rpc({
route: '/test/refresh'
}).then(function() {
self.reload();
});
}
});
var ReportListView = ListView.extend({
config: _.extend({}, ListView.prototype.config, {
Controller: TestListController
}),
});
view_registery.add('test_view')
});
odoo.define('.updateview,函数(require){
var view_registry=require('web.view_registry');
var ListController=require('web.ListController');
var ListView=require('web.ListView');
var TestListController=ListController.extend({
init:函数(){
这个._super.apply(这个,参数);
var self=这个;
这个({
路由:'/test/refresh'
}).然后(函数(){
self.reload();
});
}
});
var ReportListView=ListView.extend({
配置:u2;.extend({},ListView.prototype.config{
控制器:TestListController
}),
});
查看注册表项。添加('test\u view')
});
这一切都可以很好地加载页面。有没有奥多推荐的更好的方法?或者这可以帮助其他人。我认为您可以使用odoo客户端操作重新加载视图,作为python函数的返回:
@api.model
def generate_data(self):
# do stuff on database
(...)
return {
'type': 'ir.actions.client',
'tag': 'reload',
}
我认为您可以使用一个odoo客户端操作来重新加载视图,作为python函数的返回:
@api.model
def generate_data(self):
# do stuff on database
(...)
return {
'type': 'ir.actions.client',
'tag': 'reload',
}
您希望在记录中生成哪些数据?是否没有办法使用Odoo的默认功能(如默认值)来实现您的需求?您实际上想要实现什么?如果我们知道您的目标是什么,我们会更容易提供帮助。您希望在记录中生成哪些数据?是否没有办法使用Odoo的默认功能(如默认值)来实现您的需求?您实际上想要实现什么?如果我们知道你的目标是什么,帮助你会更容易。
@api.model
def generate_data(self):
# do stuff on database
(...)
return {
'type': 'ir.actions.client',
'tag': 'reload',
}