python - Odoo 11 元素 '<page name="extra_info">' 无法在父 View 中找到

标签 python odoo odoo-11

我正在尝试/学习 Odoo 11。 我只对项目模块感兴趣,但我安装了 CRM、修复等,只是为了看看它们能做什么。当我尝试卸载它们时发生错误并收到以下跟踪:

Error:
Odoo Server Error

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 971, in _validate_fields
    check(self)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 316, in _check_xml
    view_def = view.read_combined(['arch'])
  File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 700, in read_combined
    arch = self.apply_view_inheritance(arch_tree, root.id, self.model)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 649, in apply_view_inheritance
    source = self.apply_inheritance_specs(source, specs_tree, view_id)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 627, in apply_inheritance_specs
    self.raise_view_error(_("Element '%s' cannot be located in parent view") % tag, inherit_id)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 489, in raise_view_error
    raise ValueError(message)
ValueError: Element '<page name="extra_info">' cannot be located in parent view

Error context:
View `project.task.form.view`
[view_id: 1190, xml_id: n/a, model: project.task, parent_id: 440]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 741, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 651, in _tag_record
    id = self.env(context=rec_context)['ir.model.data']._update(rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_model.py", line 1467, in _update
    record = record.create(values)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 384, in create
    return super(View, self).create(self._compute_defaults(values))
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3289, in create
    self._fields[key].determine_inverse(record)
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1045, in determine_inverse
    getattr(records, self.inverse)()
  File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 253, in _inverse_arch
    view.write(data)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 400, in write
    return super(View, self).write(self._compute_defaults(vals))
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3011, in write
    self._write(old_vals)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3164, in _write
    self._validate_fields(vals)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 975, in _validate_fields
    raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
odoo.exceptions.ValidationError: ('Error while validating constraint\n\nElement \'<page name="extra_info">\' cannot be located in parent view\n\nError context:\nView `project.task.form.view`\n[view_id: 1190, xml_id: n/a, model: project.task, parent_id: 440]', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 648, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 309, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 86, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 685, in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 341, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 97, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 334, in checked_call
    result = self.endpoint(*a, **kw)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 929, in __call__
    return self.method(*args, **kw)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 514, in response_wrap
    response = f(*args, **kw)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 920, in call_button
    action = self._call_kw(model, method, args, {})
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 908, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 689, in call_kw
    return call_kw_multi(method, model, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 680, in call_kw_multi
    result = method(recs, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/module/wizard/base_module_uninstall.py", line 55, in action_uninstall
    return modules.button_immediate_uninstall()
  File "<decorator-gen-42>", line 2, in button_immediate_uninstall
  File "/usr/lib/python3/dist-packages/odoo/addons/base/module/module.py", line 70, in check_and_log
    return method(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/module/module.py", line 555, in button_immediate_uninstall
    return self._button_immediate_function(type(self).button_uninstall)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/module/module.py", line 530, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 84, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 341, in load_modules
    loaded_modules, update_module)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 240, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 156, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 94, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 788, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 849, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 748, in parse
    exc_info[2]
  File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 85, in reraise
    raise value.with_traceback(tb)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 741, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 651, in _tag_record
    id = self.env(context=rec_context)['ir.model.data']._update(rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_model.py", line 1467, in _update
    record = record.create(values)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 384, in create
    return super(View, self).create(self._compute_defaults(values))
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3289, in create
    self._fields[key].determine_inverse(record)
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1045, in determine_inverse
    getattr(records, self.inverse)()
  File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 253, in _inverse_arch
    view.write(data)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 400, in write
    return super(View, self).write(self._compute_defaults(vals))
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3011, in write
    self._write(old_vals)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3164, in _write
    self._validate_fields(vals)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 975, in _validate_fields
    raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
odoo.tools.convert.ParseError: "Error while validating constraint

Element '<page name="extra_info">' cannot be located in parent view

Error context:
View `project.task.form.view`
[view_id: 1190, xml_id: n/a, model: project.task, parent_id: 440]
None" while parsing /usr/lib/python3/dist-packages/odoo/addons/task_check_list/views/project_task_view.xml:4, near
<record model="ir.ui.view" id="view_task_form2_inherit_form_view">
        <field name="name">project.task.form.view</field>
        <field name="model">project.task</field>
        <field name="inherit_id" ref="project.view_task_form2"/>
        <field name="arch" type="xml">
            <page name="extra_info" position="after">
                <page name="checklist" string="Checklist">
                    <group>
                        <group string="Checklist">
                            <field name="task_checklist" widget="many2many_checkboxes"/>
                        </group>
                        <group string="Completed">
                            <field name="checklist_progress" widget="percentpie"/>
                        </group>
                    </group>
                </page>
            </page>
        </field>
    </record>

我不是一个Python开发人员,我还没有了解Odoo或OpenERP的内部结构来真正能够修复任何问题。我所做的唯一一件事是通过 Odoo 的内部编辑器在看板 View 的项目 -> 任务框中添加了一个 date_start 字段。

我已经在这里和 Reddit 上读过类似的问题,但它没有让我得到任何帮助。

最佳答案

卸载有时会很困惑。 Odoo View 可以通过 XPath 表达式(直接和间接)继承和扩展。

不知何故,您卸载了一个模块,该模型 project.task 的 View 定义依赖于另一个 View ,该 View 将在卸载模块时删除。

您在这里没有犯错误,但 Odoo 本身以错误的顺序卸载模块,或者在项目应用程序/模块中的任何位置存在错误的模块依赖项。

尝试取消模块/应用程序卸载(您必须打开每个模块并单击该按钮...),然后卸载模块task_check_list,这是此错误的来源。

关于python - Odoo 11 元素 '<page name="extra_info">' 无法在父 View 中找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52071387/

相关文章:

python - ¿如何在 Orator 中的单个查询中复合 where 语句?

python - 如何从 Python 代码生成 PDF 报告。奥杜 16

python-3.x - odoo11中write和update的区别

python - 将列表返回到 Many2One 字段

python - 在一台计算机上安装多个相同 python 版本的 Python

python - 在 alpine docker 镜像中使用 asyncpg python 模块

python - 错误 : "External ID not found in the system" in OpenERP

python - Openerp NotImplementedError : Iteration is not allowed on browse_record(stock. 移动,159275)

python-3.x - 在 Odoo 11 中复制记录时,唯一约束会导致错误

Python pdb(调试器)disp 等效?