AssertionError: Element odoo has extra content: 记录,第 3 行 - - - Odoo13
Posted
技术标签:
【中文标题】AssertionError: Element odoo has extra content: 记录,第 3 行 - - - Odoo13【英文标题】:AssertionError: Element odoo has extra content: record, line 3 - - - Odoo13 【发布时间】:2020-04-15 12:04:08 【问题描述】:我正在尝试在Actions
下添加一个菜单。但我遇到了错误。
2019-12-24 11:28:28,309 22740 错误 odoo13 werkzeug:请求错误: Traceback(最近一次通话最后一次):文件 “/usr/local/lib/python3.6/dist-packages/werkzeug/serving.py”,行 270,在run_wsgi中 执行(self.server.app)文件“/usr/local/lib/python3.6/dist-packages/werkzeug/serving.py”,行 258,正在执行中 application_iter = app(environ, start_response) 文件“/home/user/Projects/odoo_13.0.EE/odoo/service/server.py”,第 414 行, 在应用程序中 返回 self.app(e, s) 文件“/home/user/Projects/odoo_13.0.EE/odoo/service/wsgi_server.py”,行 142,申请中 返回 application_unproxied(environ, start_response) 文件“/home/user/Projects/odoo_13.0.EE/odoo/service/wsgi_server.py”,行 117,在 application_unproxied 结果 = odoo.http.root(environ, start_response) 文件“/home/user/Projects/odoo_13.0.EE/odoo/http.py”,第 1281 行,在 致电 返回 self.dispatch(environ, start_response) 文件“/home/user/Projects/odoo_13.0.EE/odoo/http.py”,第 1251 行,在 致电 返回 self.app(environ, start_wrapped) 文件“/usr/local/lib/python3.6/dist-packages/werkzeug/wsgi.py”,第 766 行, 在通话 返回 self.app(environ, start_response) 文件“/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 行,在 登记处 返回 modules.registry.Registry(database_name) 文件“/home/user/Projects/odoo_13.0.EE/odoo/modules/registry.py”,第 61 行, 在新 返回 cls.new(db_name) 文件“/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 力,状态,报告,加载模块,更新模块,模型_to_check)文件 “/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 文件“/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) 文件 “/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_xml_import(cr, module, fp, idref, mode, noupdate, report) 文件“/home/user/Projects/odoo_13.0.EE/odoo/tools/convert.py”,行 第787章 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" 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>
【问题讨论】:
当您错过拼写标签或意外添加一些内容时,您可能会出现此错误。只需评论记录,女巫导致问题。当我看不到像你这样的错误时,我会特别使用这种技术 实际上是<act_window/>
标签导致了错误。当我评论它工作正常。我从odoo默认模块复制粘贴该行,仍然是同样的错误。
知道了。您没有传递view_mode
参数。我已经更新了我的答案,你可以试试。
@MayurJotaniya,我试过view_mode
,但没有运气。
【参考方案1】:
最后,我找到了解决方案。我刚刚删除了act_window
标签。并在ir.actions.act_window
中添加了一个字段binding_model_id
。
<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>
它有效。
【讨论】:
【参考方案2】:您没有在xml
代码中提及<data>
。我已经更新了它。请尝试以下代码。
<?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" 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>
【讨论】:
以上是关于AssertionError: Element odoo has extra content: 记录,第 3 行 - - - Odoo13的主要内容,如果未能解决你的问题,请参考以下文章
algorithm@ find kth smallest element in two sorted arrays (O(log n time)
C 语言构造hash table 解 LC majority element问题