如何在Python端创建扩展表单视图?
我试图创建动态视图,所以我想在python端创建视图。但是,当我试图保存视图时,“arch_base”字段未设置。谁能告诉我有什么问题吗?这是我的功能如何在Python端创建扩展表单视图?,python,xpath,orm,openerp,odoo-view,Python,Xpath,Orm,Openerp,Odoo View,我试图创建动态视图,所以我想在python端创建视图。但是,当我试图保存视图时,“arch_base”字段未设置。谁能告诉我有什么问题吗?这是我的功能 @api.onchange('field_id') def create_validation_button(self): model = self.field_id.model_id.model model_view = self.env['ir.ui.view'].search([("model", "=", model),
@api.onchange('field_id')
def create_validation_button(self):
model = self.field_id.model_id.model
model_view = self.env['ir.ui.view'].search([("model", "=", model), ('type', "=", "form")])
arch = '<xpath expr="//header" postition="inside"><button string="Add Followers" type="object" name="add_project_followers" /></xpath>'
if model_view:
self.view_id = None
self.env['ir.ui.view'].search(
[("model", "=", model), ('name', "=", 'validation.' + model_view.name)]).unlink()
view_data = {'name': 'validation.' + model_view.name, 'type': 'form', 'model': model, 'priority': 1,
'inherit_id': model_view.id,
'mode': 'extension',
'arch_base': arch.encode('utf-8')}
view = self.env["ir.ui.view"].create(view_data)
self.view_id = view
@api.onchange('field\u id'))
def创建验证按钮(自身):
模型=self.field\u id.model\u id.model
model_view=self.env['ir.ui.view'].search([(“model”,“=”,model),(“type”,“=”,“form”))
拱=“”
如果模型视图:
self.view\u id=None
self.env['ir.ui.view'].search(
[(“model”,“=”,model),('name',“=”,'validation.+model_view.name)]。取消链接()
view_data={'name':'validation.+model_view.name,'type':'form','model':model,'priority':1,
“inherit_id”:model_view.id,
'模式':'扩展',
'arch_base':arch.encode('utf-8')}
view=self.env[“ir.ui.view”]。创建(查看数据)
self.view\u id=view
字段名是arch
而不是arch\u base
,因此设置为:
view_data = {'name': 'validation.' + model_view.name, 'type': 'form', 'model': model, 'priority': 1,
'inherit_id': model_view.id,
'mode': 'extension',
'arch': arch.encode('utf-8')}
多亏了
彼得雪花石膏
欢迎来到堆栈溢出。请查看和。您想用动态视图做什么?为什么不用XML创建一个视图呢?此外,您是否可以包含由
add\u project\u followers
方法执行的代码?我想在用户选择的视图上创建一个验证按钮。此时,我们假设add\u project\u followers
在控制台上打印一些内容。执行create\u validation\u按钮
时,将创建视图并将其分配给其父视图,但只有未设置的arch\u base
。