跳至内容
菜单
此问题已终结

Odoo migration to v16: Error for standard wizard


When i try to install my -originally in v13 developed custom module- in Odoo v16-apps, i got an error, even for an empty wizard (with a structure which is identical the other wizards definitions found in the official odoo addons)!:

  

But, even if i have tried to reduce my wizard definition to the minimalist content, i keep on getting this error on install:

**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**

Traceback:

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
  
    my.custom.wizard.form
    
How to change my wizard or the way to call it to match the odoo 16 requirements ?
形象
丢弃
最佳答案

Hi, you can follow following link for this:

https://youtu.be/oMnHpHH54QU

Thanks

形象
丢弃
编写者

Thank you for your answer... I have used the same procedure as you did, and i double check with your video too... The only difference is the def to open the wizard (which works in Odoo v13) but could be the cause of the error in odoo v16: def open_brevo_import_wizard(self):
return {
'name': "Brevo Import Wizard",
'type': 'ir.actions.act_window',
'view_type': 'form',
'view_mode': 'form',
'context': {'active_ids': self.ids},
'res_model': 'brevo.import.wizard',
'view_id': self.env.ref('brevo_sync_zsb.import_wizard_form').id,
'target': 'new',
}

Hi, you have to remove 'view_type': 'form', after that it should work fine.
Thanks

编写者 最佳答案

@Adil Akbar, Even when following your suggestion the error remains the same:


class mymodel(models.Model):
    _name = "my.model"
    #...
    #...
    def open_brevo_import_wizard(self):
        return {
            'type': 'ir.actions.act_window',
            'res_model': 'brevo.import.wizard',
            'view_mode': 'form',
            'target': 'new',
            }


形象
丢弃

@Admin Samadeva, Please paste your updated wizard xml code to help us understand better.
Thanks

相关帖文 回复 查看 活动
3
6月 24
2414
1
2月 24
4752
0
1月 24
1046
1
9月 23
2480
0
7月 23
2028