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>

【问题讨论】:

当您错过拼写标签或意外添加一些内容时,您可能会出现此错误。只需评论记录,女巫导致问题。当我看不到像你这样的错误时,我会特别使用这种技术 实际上是&lt;act_window/&gt; 标签导致了错误。当我评论它工作正常。我从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 代码中提及&lt;data&gt;。我已经更新了它。请尝试以下代码。

<?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问题

229. Majority Element II

AssertionError: PORT 不是数字(在 Python 中)

AssertionError:内部:未指定默认项目

为啥我在 Selenium 中收到 AssertionError?