Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python端创建扩展表单视图?_Python_Xpath_Orm_Openerp_Odoo View - Fatal编程技术网

如何在Python端创建扩展表单视图?

如何在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),

我试图创建动态视图,所以我想在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), ('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