当我尝试在 Odoo v16-apps 中安装我的 - 最初在 v13 开发的自定义模块 - 时,我收到了一个错误,即使是一个空向导(其结构与官方 odoo 插件中找到的其他向导定义相同)! :
<record id="my_custom_wizard_form" model="ir.ui.view">
<field name="name">my.custom.wizard.form</field>
<field name="model">my.custom.wizard</field>
<field name='arch' type='xml'>
<form string='My Wizard'>
<sheet>
</sheet>
<footer>
</footer>
</form>
</field>
</record>
<record id="act_my_custom_wizard" model="ir.actions.act_window">
<field name="name">My Custom Wizard</field>
<field name="res_model">my.custom.wizard</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="view_id" ref="my_custom_wizard_form"/>
<!--field name="binding_model_id" eval="False"/-->
</record>
<menuitem id="menu_my_custom_wizard" action="act_my_custom_wizard" parent="my_configration" sequence="2"/>
但是,即使我尝试将向导定义减少到极简内容,我仍然在安装时收到此错误:
**File "/home/odoo/src/odoo/odoo/tools/convert.py", line 711, in _tag_root
raise ParseError('while parsing %s:%s, somewhere inside\n%s' % (
odoo.tools.convert.ParseError: while parsing /home/odoo/src/user/my_custom_module_zsb/wizard/my_custom_wizard.xml:3, somewhere inside**
追溯:
Failed to load registry
Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 698, in _tag_root
f(rec)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 599, in _tag_record
record = model._load_records([data], self.mode == 'update')
File "/home/odoo/src/odoo/odoo/models.py", line 4364, in _load_records
data['record']._load_records_write(data['values'])
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 2218, in _load_records_write
super(View, self)._load_records_write(values)
File "/home/odoo/src/odoo/odoo/models.py", line 4295, in _load_records_write
self.write(values)
File "/home/odoo/src/odoo/addons/website/models/theme_models.py", line 385, in write
res = super(IrUiView, other_views).write(vals)
File "/home/odoo/src/odoo/addons/website/models/ir_ui_view.py", line 93, in write
return super(View, self).write(vals)
File "/home/odoo/src/enterprise/web_studio/models/studio_mixin.py", line 33, in write
res = super(StudioMixin, self).write(vals)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 573, in write
res = super(View, self).write(self._compute_defaults(vals))
File "/home/odoo/src/odoo/odoo/models.py", line 3787, in write
fields[0].determine_inverse(real_recs)
File "/home/odoo/src/odoo/odoo/fields.py", line 1396, in determine_inverse
determine(self.inverse, records)
File "/home/odoo/src/odoo/odoo/fields.py", line 97, in determine
return needle(*args)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 340, in _inverse_arch
view.write(data)
File "/home/odoo/src/odoo/addons/website/models/theme_models.py", line 385, in write
res = super(IrUiView, other_views).write(vals)
File "/home/odoo/src/odoo/addons/website/models/ir_ui_view.py", line 93, in write
return super(View, self).write(vals)
File "/home/odoo/src/enterprise/web_studio/models/studio_mixin.py", line 33, in write
res = super(StudioMixin, self).write(vals)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 573, in write
res = super(View, self).write(self._compute_defaults(vals))
File "/home/odoo/src/odoo/odoo/models.py", line 3755, in write
field.write(self, value)
File "/home/odoo/src/odoo/odoo/fields.py", line 1815, in write
text2terms[self.get_text_content(term)].append(term)
File "/home/odoo/src/odoo/odoo/fields.py", line 1681, in get_text_content
return func(term)
File "/home/odoo/src/odoo/odoo/tools/translate.py", line 361, in get_text_content
content = html.fromstring(term).text_content()
File "/usr/lib/python3/dist-packages/lxml/html/__init__.py", line 875, in fromstring
doc = document_fromstring(html, parser=parser, base_url=base_url, **kw)
File "/usr/lib/python3/dist-packages/lxml/html/__init__.py", line 763, in document_fromstring
raise etree.ParserError(
lxml.etree.ParserError: Document is empty
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/modules/registry.py", line 90, in new
odoo.modules.load_modules(registry, force_demo, status, update_module)
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 484, in load_modules
processed_modules += load_marked_modules(cr, graph,
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 372, in load_marked_modules
loaded, processed = load_module_graph(
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 231, in load_module_graph
load_data(cr, idref, mode, kind='data', package=package)
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 71, in load_data
tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 763, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 829, in convert_xml_import
obj.parse(doc.getroot())
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 749, in parse
self._tag_root(de)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 711, in _tag_root
raise ParseError('while parsing %s:%s, somewhere inside\n%s' % (
odoo.tools.convert.ParseError: while parsing /home/odoo/src/user/my_custom_module_zsb/wizard/my_custom_wizard.xml:3, somewhere inside
<record id="my_custom_wizard_form" model="ir.ui.view">
<field name="name">my.custom.wizard.form</field>
<field name="model">my.custom.wizard</field>
<field name='arch' type='xml'>
<form string='My Wizard'>
<sheet>
</sheet>
<footer>
</footer>
</form>
</field>
</record>
如何更改我的向导或调用它的方式以符合 odoo 16 要求?
我认为这是因为你没有将内容放入表单视图中