Odoo 11. 从 xml 导入

Odoo 11. Import from xml

Im creating an import from an xml file, but Odoo shows me an error message. Will you be able to help me?

__manifest_.py

{
    'name': 'prueba_import',
    'version': '0.1.0-9 (Alpha)',
    'category': 'Account',
    'sequence': 10,
    'author' : 'Carlos Rafael Soto (CSOTOX)',
    'summary': 'Data de importación.',
    'description': """
                    Versión de Odoo: 11
                    """,
    'website': '',
    'data': [
            'data/account_payment_term.xml',
        ],
    'installable': True,
    'application': False,
    'auto_install': False,
   }

data/account_payment_term.xml

<?xml version="1.0" encoding="utf-8"?>
 <odoo>
    <record model="account.payment.term" id="account_payment_term_6">
        <field name="name">10 Dias</field>
    </record>
    <record model="account.payment.term" id="account_payment_term_15days">
        <field name="display_name">15 días</field>
        <field name="name">15 días</field>
    </record>
    <record model="account.payment.term" id="account_payment_term_4">
        <field name="display_name">7 días</field>
        <field name="name">7 días</field>
    </record>
    <record model="account.payment.term" id="account_payment_term_5">
        <field name="display_name">21 días</field>
        <field name="name">21 días</field>
    </record>
    <record model="account.payment.term" id="account_payment_term_net">
        <field name="display_name">30 días netos</field>
        <field name="name">30 días netos</field>
    </record>
    <record model="account.payment.term" id="account_payment_term_immediate">
        <field name="display_name">Pago inmediato</field>
        <field name="name">Pago inmediato</field>
    </record>
</odoo>

Error message

错误: Odoo 服务器错误

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 741, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 569, in _tag_record
    model = self.env[rec_model]
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 760, in __getitem__
    return self.registry[model_name]._browse((), self)
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 181, in __getitem__
    return self.models[model_name]
KeyError: 'account.payment.term'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 650, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 310, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 87, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 692, in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 342, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 97, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 335, in checked_call
    result = self.endpoint(*a, **kw)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 936, in __call__
    return self.method(*args, **kw)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 515, in response_wrap
    response = f(*args, **kw)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 934, in call_button
    action = self._call_kw(model, method, args, {})
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 922, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 689, in call_kw
    return call_kw_multi(method, model, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 680, in call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-46>", line 2, in button_immediate_upgrade
  File "/usr/lib/python3/dist-packages/odoo/addons/base/module/module.py", line 71, in check_and_log
    return method(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/module/module.py", line 602, in button_immediate_upgrade
    return self._button_immediate_function(type(self).button_upgrade)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/module/module.py", line 541, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 85, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 339, in load_modules
    force, status, report, loaded_modules, update_module)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 242, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 156, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 94, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 788, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 849, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 738, in parse
    self.parse(rec, mode)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 748, in parse
    exc_info[2]
  File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 86, in reraise
    raise value.with_traceback(tb)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 741, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 569, in _tag_record
    model = self.env[rec_model]
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 760, in __getitem__
    return self.registry[model_name]._browse((), self)
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 181, in __getitem__
    return self.models[model_name]
odoo.tools.convert.ParseError: "account.payment.term" while parsing /mnt/extra-addons/entre4/data/account_payment_term.xml:4, near
<record model="account.payment.term" id="account_payment_term_6">
        <field name="name">10 Dias</field>
    </record>

感谢您的帮助

在我看来,您忘记了清单中对模块 account 的依赖。

{
    # ...
    'data': [
        'data/account_payment_term.xml',
    ],
    'depends': ['base', 'account'],
    'installable': True,
    # ...
}

maniifest.py 中没有依赖

请加'depends': ['base', 'account'], 因为您的模块需要安装帐户模块和基本模块。