AssertionError: элемент odoo имеет дополнительное содержимое: запись, строка 3 - - - Odoo13
Я пытаюсь добавить меню под Actions
. Но я получаю ошибку ниже.
2019-12-24 11:28:28,309 22740 ОШИБКА odoo13 werkzeug: Ошибка по запросу: Отслеживание (последний вызов последним): Файл "/usr/local/lib/python3.6/dist-packages/werkzeug/serving.py", строка 270, в run_wsgi execute(self.server.app) Файл "/usr/local/lib/python3.6/dist-packages/werkzeug/serving.py", строка 258, в execute application_iter = app(environment, start_response) Файл "/home/user/Projects/odoo_13.0.EE/odoo/service/server.py", строка 414, в приложении return self.app(e, s) File "/home/user/Projects/odoo_13.0.EE/odoo/service/wsgi_server.py", строка 142, в приложении return application_unproxied(environment, start_response) File "/home/user/Projects/odoo_13.0.EE/odoo/service/wsgi_server.py", строка 117, в application_unproxied result = odoo.http.root(environment,start_response) Файл "/home/user/Projects/odoo_13.0.EE/odoo/http.py", строка 1281, в вызовите return self.dispatch(environmental, start_response) Файл " /home/user/Projects/odoo_13.0.EE/odoo/http.py", строка 1251, при вызове return self.app(Environment, start_wrapped) File "/usr/local/lib/python3.6/dist-packages/werkzeug/wsgi.py", строка 766, при вызове return self.app(environment, start_response) File "/home/user/Projects/odoo_13.0.EE/odoo/http.py", строка 1433, в диспетчере odoo.registry(db).check_signaling() Файл" /home/user/Projects/odoo_13.0.EE/odoo/init.py ", строка 104, в модулях возврата реестра.registry.Registry(имя_базы_данных) Файл "/home/user/Projects/odoo_13.0.EE/odoo/modules/registry.py", строка 61, в новой return cls.new(db_name) File "/home/user/Projects/odoo_13.0.EE/odoo/modules/registry.py", строка 85, в новом odoo.modules.load_modules(registry._db, force_demo, status, update_module) Файл "/home/user/Projects/odoo_13.0.EE/odoo/modules/loading.py", строка 416, в load_modules force, status, report, loaded_modules, update_module, models_to_check) File "/home/user/Projects/odoo_13.0.EE/odoo/modules/loading.py", строка 312, в load_marked_modules perform_checks=perform_checks, models_to_check=models_to_check File "/home/user/Projects/odoo_13.0.EE/odoo/modules/loading.py", строка 222, в load_module_graph load_data(cr, idref, mode, kind='data', package=package, report=report) File "/home/user/Projects/odoo_13.0.EE/odoo/modules/loading.py", строка 68,в load_data tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind, report) Файл "/home/user/Projects/odoo_13.0.EE/odoo/tools/convert.py", строка 737 в файле convert_file convert_xml_import(cr, module, fp, idref, mode, noupdate, report) Файл "/home/user/Projects/odoo_13.0.EE/odoo/tools/convert.py", строка 787, в convert_xml_import relaxng.assert_(doc) Файл "src/lxml/etree.pyx", строка 3536, в lxml.etree.в convert_xml_import relaxng.assert_ (doc) Файл "src/lxml/etree.pyx", строка 3536, в lxml.etree.в convert_xml_import relaxng.assert_ (doc) Файл "src/lxml/etree.pyx", строка 3536, в lxml.etree.Validator.assert
AssertionError: элемент odoo имеет дополнительное содержимое: запись, строка 3 - - -
*.xml
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="import_image_view_form" model="ir.ui.view">
<field name="name">import.image.form</field>
<field name="model">import.image</field>
<field name="arch" type="xml">
<form string="Import Images">
<group >
<field widget="binary" height="64" name="file" filename="file_fname" required="1"/>
<field name="file_fname" invisible="1"/>
</group>
<footer>
<button name="get_file" type="object" class="oe_highlight" string="Load File" style="width:75px;"/>
<button string="Cancel" class="btn-default" special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="import_image_action_form" model="ir.actions.act_window">
<field name="name">Import product images</field>
<field name="res_model">import.image</field>
<field name="view_mode">form</field>
<field name="view_id" ref="import_image_view_form"/>
<field name="target">new</field>
</record>
<act_window
name="Import Product Image"
id="action_import_product_image"
res_model="import.image"
src_model="product.template"
target="new" multi="True" key2="client_action_multi"/>
</odoo>
3 ответа
Наконец, я нашел решение. Я только что удалилact_window
тег. И добавил полеbinding_model_id
в ir.actions.act_window
.
<record id="import_image_action_form" model="ir.actions.act_window">
<field name="name">Import product images</field>
<field name="res_model">import.image</field>
<field name="view_mode">form</field>
<field name="view_id" ref="import_image_view_form"/>
<field name="target">new</field>
<field name="binding_model_id" ref="account.model_product_template" />
</record>
оно работает.
Основная проблема - это, по сути, ошибка в написании тегов XML, которая показывает ошибку утверждения.
<munuitem id="menu_student_list" parent="menu_student_list" name="Atten" action="action_student_detail_tree" />
<menuitem id="menu_student_list" parent="menu_student_list" name="Atten" action="action_student_detail_tree" />
Вы не упомянули <data>
в твоем xml
код. Я его обновил. Пожалуйста, попробуйте код ниже.
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="import_image_view_form" model="ir.ui.view">
<field name="name">import.image.form</field>
<field name="model">import.image</field>
<field name="arch" type="xml">
<form string="Import Images">
<group >
<field widget="binary" height="64" name="file" filename="file_fname" required="1"/>
<field name="file_fname" invisible="1"/>
</group>
<footer>
<button name="get_file" type="object" class="oe_highlight" string="Load File" style="width:75px;"/>
<button string="Cancel" class="btn-default" special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="import_image_action_form" model="ir.actions.act_window">
<field name="name">Import product images</field>
<field name="res_model">import.image</field>
<field name="view_mode">form</field>
<field name="view_id" ref="import_image_view_form"/>
<field name="target">new</field>
</record>
<act_window
name="Import Product Image"
res_model="import.image"
src_model="product.template"
view_mode="form"
target="new"
multi="True"
key2="client_action_multi"
id="action_import_product_image" />
</data>
</odoo>