Odoo 11元素“ <页面名称=“ extra_info”>”不能位于父视图中

时间:2018-08-29 07:03:03

标签: python odoo odoo-11

我正在尝试/学习Odoo 11。 我只对Projects Module感兴趣,但我已经安装了CRM,Repair和其他工具,目的只是为了了解它们的作用。当我尝试将其卸载时出现错误,并且收到以下跟踪记录:

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的内部编辑器在看板视图的“项目”->“任务”框中添加了一个date_start字段。

我已经在Reddit和Reddit上读过类似的问题,但并没有带我去任何地方。

1 个答案:

答案 0 :(得分:1)

卸载有时会很混乱。可以通过XPath表达式(直接和间接)继承和扩展Odoo视图。

您已经以某种方式卸载了模块,模型project.task的视图定义取决于另一个视图,该视图在卸载模块时将被删除。

您在这里没有犯错,但是Odoo本身是通过卸载模块的顺序错误或者项目应用程序/模块中任何地方的模块依赖关系都错误。

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