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>
Другие вопросы по тегам