Не могу сделать xpath в openerp 7 - PullRequest
0 голосов
/ 14 июня 2019

Здравствуйте, я обычно пишу в Odoo v10 и +,

Теперь мне нужно кодировать в OpenERP 7, и мне не удается сделать простой Xpath!Вот мой XML stock_view.xml

<?xml version="1.0" encoding="UTF-8"?>
<openerp>
    <data>
    <!--...-->
    <!--...-->

        <record model="ir.ui.view" id="view_picking_in_form_adquat">
            <field name="name">stock.picking.in.adquat</field>
            <field name="model">stock.picking.in</field>
            <field name="inherit_id" ref="stock.view_picking_in_form"/>
            <field name="arch" type="xml">

                <xpath expr="/field[@name='origin']" > <!--position="after"-->                        <!--...-->
                    <string>I'm Here</string>
                </xpath>

            </field>
        </record>
<!--... -->
    </data>
</openerp>

Кажется, ошибка находится в поле арки: «Ошибка ValidateError при проверке арки поля (ей): неверный XML для архитектуры представления»

Client Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/openerp/addons/web/http.py", line 204, in dispatch
    response["result"] = method(self, **self.params)
  File "/usr/lib/pymodules/python2.7/openerp/addons/web/controllers/main.py", line 1135, in call_button
    action = self._call_kw(req, model, method, args, {})
  File "/usr/lib/pymodules/python2.7/openerp/addons/web/controllers/main.py", line 1123, in _call_kw
    return getattr(req.session.model(model), method)(*args, **kwargs)
  File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 42, in proxy
    result = self.proxy.execute_kw(self.session._db, self.session._uid, self.session._password, self.model, method, args, kw)
  File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 30, in proxy_method
    result = self.session.send(self.service_name, method, *args)
  File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 103, in send
    raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info)


Server Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 89, in send
    return openerp.netsvc.dispatch_rpc(service_name, method, args)
  File "/usr/lib/pymodules/python2.7/openerp/netsvc.py", line 292, in dispatch_rpc
    result = ExportService.getService(service_name).dispatch(method, params)
  File "/usr/lib/pymodules/python2.7/openerp/service/web_services.py", line 622, in dispatch
    security.check(db,uid,passwd)
  File "/usr/lib/pymodules/python2.7/openerp/service/security.py", line 40, in check
    pool = pooler.get_pool(db)
  File "/usr/lib/pymodules/python2.7/openerp/pooler.py", line 49, in get_pool
    return get_db_and_pool(db_name, force_demo, status, update_module)[1]
  File "/usr/lib/pymodules/python2.7/openerp/pooler.py", line 33, in get_db_and_pool
    registry = RegistryManager.get(db_name, force_demo, status, update_module)
  File "/usr/lib/pymodules/python2.7/openerp/modules/registry.py", line 192, in get
    update_module)
  File "/usr/lib/pymodules/python2.7/openerp/modules/registry.py", line 218, in new
    openerp.modules.load_modules(registry.db, force_demo, status, update_module)
  File "/usr/lib/pymodules/python2.7/openerp/modules/loading.py", line 350, in load_modules
    force, status, report, loaded_modules, update_module)
  File "/usr/lib/pymodules/python2.7/openerp/modules/loading.py", line 256, 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/pymodules/python2.7/openerp/modules/loading.py", line 188, in load_module_graph
    load_data(module_name, idref, mode)
  File "/usr/lib/pymodules/python2.7/openerp/modules/loading.py", line 76, in <lambda>
    load_data = lambda *args: _load_data(cr, *args, kind='data')
  File "/usr/lib/pymodules/python2.7/openerp/modules/loading.py", line 124, in _load_data
    tools.convert_xml_import(cr, module_name, fp, idref, mode, noupdate, report)
  File "/usr/lib/pymodules/python2.7/openerp/tools/convert.py", line 954, in convert_xml_import
    obj.parse(doc.getroot())
  File "/usr/lib/pymodules/python2.7/openerp/tools/convert.py", line 847, in parse
    self._tags[rec.tag](self.cr, rec, n)
  File "/usr/lib/pymodules/python2.7/openerp/tools/convert.py", line 814, in _tag_record
    id = self.pool.get('ir.model.data')._update(cr, self.uid, rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode, context=rec_context )
  File "/usr/lib/pymodules/python2.7/openerp/addons/base/ir/ir_model.py", line 964, in _update
    res_id = model_obj.create(cr, uid, values, context=context)
  File "/usr/lib/pymodules/python2.7/openerp/addons/base/ir/ir_ui_view.py", line 103, in create
    return super(view, self).create(cr, uid, values, context)
  File "/usr/lib/pymodules/python2.7/openerp/osv/orm.py", line 4472, in create
    self._validate(cr, user, [id_new], context)
  File "/usr/lib/pymodules/python2.7/openerp/osv/orm.py", line 1546, in _validate
    raise except_orm('ValidateError', '\n'.join(error_msgs))
except_orm: ('ValidateError', u'Une erreur est apparue lors de la validation du/des champ(s) arch: Invalid XML for View Architecture!')

Может кто-нибудь сказать мне, есть ли синтаксические различия между odoo и openerp?

Ответы [ 2 ]

1 голос
/ 25 июня 2019

Нет раздела для new in Odoo 8, как описано в Odoo 8 просмотров .
XPath должно быть таким же.

элемент поля с атрибутом имени соответствует первому полю с тем же именем

Вы можете добавить элемент в представление, используя field:

<field name='origin' position="after">
    <string>I'm Here</string>
</field>

Или просто добавьте еще одну косую черту в начале выражения XPath, как указано @imad.

1 голос
/ 14 июня 2019

попробуйте, это может помочь вам, я думаю, что вам просто нужно добавить еще одну косую черту

<xpath expr="//field[@name='original_field']" position="after">
     <field name="new_field"/>
</xpath>
...