[尝试将插件导入Odoo时出现Odoo服务器错误

问题描述 投票:0回答:1

我有3个插件模块,我需要导入到我的Odoo.sh环境中的Odoo v11企业版中。我能够成功导入两个模块,但是在第三种情况下却收到Odoo Server错误消息。这是我收到的错误消息。有谁遇到过类似的问题,可以提供一些帮助

Error:
Odoo Server Error

Traceback (most recent call last):
  File "/home/odoo/src/odoo/odoo/models.py", line 1046, in _validate_fields
    check(self)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 342, in _check_xml
    self.postprocess_and_fields(view.model, view_doc, view.id)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 1082, in postprocess_and_fields
    self.raise_view_error("\n".join(msg_lines), view_id)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 519, in raise_view_error
    raise ValueError(message)
ValueError: Field 'x_studio_over_credit' used in attributes must be present in view but is missing:
 - 'x_studio_over_credit' in attrs="{'invisible': ['|', ('state', 'not in', ['draft']), ('x_studio_over_credit', '!=', False)]}"
 - 'x_studio_over_credit' in attrs="{'invisible': ['|', ('state', 'not in', ['sent']), ('x_studio_over_credit', '!=', False)]}"

Error context:
View `view.sales.form.extend.one`
[view_id: 2257, xml_id: n/a, model: sale.order, parent_id: 844]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 745, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 655, in _tag_record
    id = self.env(context=rec_context)['ir.model.data']._update(rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_model.py", line 1513, in _update
    record = record.create(values)
  File "/home/odoo/src/enterprise/web_studio/models/studio_mixin.py", line 18, in create
    res = super(StudioMixin, self).create(vals)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 408, in create
    return super(View, self).create(self._compute_defaults(values))
  File "/home/odoo/src/odoo/odoo/models.py", line 3434, in create
    self._fields[key].determine_inverse(record)
  File "/home/odoo/src/odoo/odoo/fields.py", line 1085, in determine_inverse
    getattr(records, self.inverse)()
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 273, in _inverse_arch
    view.write(data)
  File "/home/odoo/src/enterprise/web_studio/models/studio_mixin.py", line 27, in write
    res = super(StudioMixin, self).write(vals)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 424, in write
    return super(View, self).write(self._compute_defaults(vals))
  File "/home/odoo/src/odoo/odoo/models.py", line 3138, in write
    self._write(old_vals)
  File "/home/odoo/src/odoo/odoo/models.py", line 3309, in _write
    self._validate_fields(vals)
  File "/home/odoo/src/odoo/odoo/models.py", line 1050, in _validate_fields
    raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
odoo.exceptions.ValidationError: ('Error while validating constraint\n\nField \'x_studio_over_credit\' used in attributes must be present in view but is missing:\n - \'x_studio_over_credit\' in attrs="{\'invisible\': [\'|\', (\'state\', \'not in\', [\'draft\']), (\'x_studio_over_credit\', \'!=\', False)]}"\n - \'x_studio_over_credit\' in attrs="{\'invisible\': [\'|\', (\'state\', \'not in\', [\'sent\']), (\'x_studio_over_credit\', \'!=\', False)]}"\n\nError context:\nView `view.sales.form.extend.one`\n[view_id: 2257, xml_id: n/a, model: sale.order, parent_id: 844]', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/odoo/src/odoo/odoo/http.py", line 653, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/odoo/src/odoo/odoo/http.py", line 312, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/home/odoo/src/odoo/odoo/tools/pycompat.py", line 87, in reraise
    raise value
  File "/home/odoo/src/odoo/odoo/http.py", line 695, in dispatch
    result = self._call_function(**self.params)
  File "/home/odoo/src/odoo/odoo/http.py", line 344, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/service/model.py", line 97, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/http.py", line 337, in checked_call
    result = self.endpoint(*a, **kw)
  File "/home/odoo/src/odoo/odoo/http.py", line 939, in __call__
    return self.method(*args, **kw)
  File "/home/odoo/src/odoo/odoo/http.py", line 517, in response_wrap
    response = f(*args, **kw)
  File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 938, in call_button
    action = self._call_kw(model, method, args, {})
  File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 926, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/home/odoo/src/odoo/odoo/api.py", line 699, in call_kw
    return call_kw_multi(method, model, args, kwargs)
  File "/home/odoo/src/odoo/odoo/api.py", line 690, in call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-42>", line 2, in button_immediate_install
  File "/home/odoo/src/odoo/odoo/addons/base/module/module.py", line 72, in check_and_log
    return method(self, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/addons/base/module/module.py", line 450, in button_immediate_install
    return self._button_immediate_function(type(self).button_install)
  File "/home/odoo/src/odoo/odoo/addons/base/module/module.py", line 552, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/home/odoo/src/odoo/odoo/modules/registry.py", line 85, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 380, in load_modules
    loaded_modules, update_module, models_to_check)
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 274, in load_marked_modules
    perform_checks=perform_checks, models_to_check=models_to_check
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 181, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 95, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 792, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 853, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 752, in parse
    exc_info[2]
  File "/home/odoo/src/odoo/odoo/tools/pycompat.py", line 86, in reraise
    raise value.with_traceback(tb)
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 745, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 655, in _tag_record
    id = self.env(context=rec_context)['ir.model.data']._update(rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_model.py", line 1513, in _update
    record = record.create(values)
  File "/home/odoo/src/enterprise/web_studio/models/studio_mixin.py", line 18, in create
    res = super(StudioMixin, self).create(vals)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 408, in create
    return super(View, self).create(self._compute_defaults(values))
  File "/home/odoo/src/odoo/odoo/models.py", line 3434, in create
    self._fields[key].determine_inverse(record)
  File "/home/odoo/src/odoo/odoo/fields.py", line 1085, in determine_inverse
    getattr(records, self.inverse)()
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 273, in _inverse_arch
    view.write(data)
  File "/home/odoo/src/enterprise/web_studio/models/studio_mixin.py", line 27, in write
    res = super(StudioMixin, self).write(vals)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 424, in write
    return super(View, self).write(self._compute_defaults(vals))
  File "/home/odoo/src/odoo/odoo/models.py", line 3138, in write
    self._write(old_vals)
  File "/home/odoo/src/odoo/odoo/models.py", line 3309, in _write
    self._validate_fields(vals)
  File "/home/odoo/src/odoo/odoo/models.py", line 1050, in _validate_fields
    raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
odoo.tools.convert.ParseError: "Error while validating constraint

Field 'x_studio_over_credit' used in attributes must be present in view but is missing:
 - 'x_studio_over_credit' in attrs="{'invisible': ['|', ('state', 'not in', ['draft']), ('x_studio_over_credit', '!=', False)]}"
 - 'x_studio_over_credit' in attrs="{'invisible': ['|', ('state', 'not in', ['sent']), ('x_studio_over_credit', '!=', False)]}"

Error context:
View `view.sales.form.extend.one`
[view_id: 2257, xml_id: n/a, model: sale.order, parent_id: 844]
None" while parsing /home/odoo/src/odoo/addons/crm_customer_rating/views/views.xml:4, near
<record id="view_sales_form_extend_1" model="ir.ui.view">
        <field name="name">view.sales.form.extend.one</field>
        <field name="model">sale.order</field>
        <field name="inherit_id" ref="sale.view_order_form"/>
        <field name="arch" type="xml">

            <xpath expr="//page[1]" position="after">
                <page name="customer_satisfaction" string="Customer Satisfaction">
                    <group colspan="2" col="2">
                        <field name="quality_of_products" widget="priority"/>
                        <field name="acc_of_delivery" widget="priority"/>
                        <field name="order_satisfaction" widget="priority"/>
                        <field name="oa_package_rating" widget="priority"/>
                    </group>
                </page>
            </xpath>
        </field>
    </record>
python server odoo odoo-11
1个回答
0
投票

您可以尝试不使用xpath来做到这一点吗?

<notebook position="inside">
 <page name="customer_satisfaction" string="Customer Satisfaction">
     <group colspan="2" col="2">
         <field name="quality_of_products" widget="priority"/>
         <field name="acc_of_delivery" widget="priority"/>
         <field name="order_satisfaction" widget="priority"/>
         <field name="oa_package_rating" widget="priority"/>
     </group>
  </page>
</notebook>
© www.soinside.com 2019 - 2024. All rights reserved.