odoo.exceptions.ValidationError: 无效视图.......

bug来源:我需要在tree视图中修改某个图片的大小,因此直接在filed中添加了一个style属性:

<field name="design_img_64" string="图片" widget="image" style="max-width: 30px;max-height: 30px;"/>

到这一步直接刷新界面,正常显示且没报错,但当完成其他功能之后,点击升级按钮,报出以下错误:

错误:
Odoo Server Error

Traceback (most recent call last):
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\tools\convert.py", line 677, in _tag_root
    f(rec)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\tools\convert.py", line 580, in _tag_record
    record = model._load_records([data], self.mode == 'update')
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\models.py", line 4198, in _load_records
    data['record']._load_records_write(data['values'])
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\addons\base\models\ir_ui_view.py", line 1836, in _load_records_write
    super(View, self)._load_records_write(values)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\models.py", line 4135, in _load_records_write
    self.write(values)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\addons\base\models\ir_ui_view.py", line 500, in write
    res = super(View, self).write(self._compute_defaults(vals))
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\models.py", line 3693, in write
    fields[0].determine_inverse(real_recs)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\fields.py", line 1183, in determine_inverse
    getattr(records, self.inverse)()
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\addons\base\models\ir_ui_view.py", line 300, in _inverse_arch
    view.write(data)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\addons\base\models\ir_ui_view.py", line 500, in write
    res = super(View, self).write(self._compute_defaults(vals))
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\models.py", line 3688, in write
    real_recs._validate_fields(vals, inverse_fields)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\models.py", line 1256, in _validate_fields
    check(self)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\addons\base\models\ir_ui_view.py", line 401, in _check_xml
    raise ValidationError(_(
odoo.exceptions.ValidationError: 无效视图任务清单 (decelop_proofing.proofing_task_list_tree_view) 定义,在  decelop_proofing/views/proofing_task_list_view.xml中

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\addons\base\models\ir_http.py", line 237, in _dispatch
    result = request.dispatch()
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\http.py", line 683, in dispatch
    result = self._call_function(**self.params)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\http.py", line 359, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\service\model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\http.py", line 347, in checked_call
    result = self.endpoint(*a, **kw)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\http.py", line 912, in __call__
    return self.method(*args, **kw)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\http.py", line 531, in response_wrap
    response = f(*args, **kw)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\addons\web\controllers\main.py", line 1381, in call_button
    action = self._call_kw(model, method, args, kwargs)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\addons\web\controllers\main.py", line 1369, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\api.py", line 396, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\api.py", line 383, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-74>", line 2, in button_immediate_upgrade
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\addons\base\models\ir_module.py", line 73, in check_and_log
    return method(self, *args, **kwargs)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\addons\base\models\ir_module.py", line 653, in button_immediate_upgrade
    return self._button_immediate_function(type(self).button_upgrade)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\addons\base\models\ir_module.py", line 592, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\modules\registry.py", line 89, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\modules\loading.py", line 449, in load_modules
    processed_modules += load_marked_modules(cr, graph,
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\modules\loading.py", line 346, in load_marked_modules
    loaded, processed = load_module_graph(
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\modules\loading.py", line 221, in load_module_graph
    load_data(cr, idref, mode, kind='data', package=package)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\modules\loading.py", line 69, in load_data
    tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\tools\convert.py", line 733, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\tools\convert.py", line 799, in convert_xml_import
    obj.parse(doc.getroot())
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\tools\convert.py", line 719, in parse
    self._tag_root(de)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\tools\convert.py", line 681, in _tag_root
    raise ParseError('while parsing %s:%s, near\n%s' % (
Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\http.py", line 639, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "E:\clothing_ERD_project\code\odoo-clothing\odoo\http.py", line 315, in _handle_exception
    raise exception.with_traceback(None) from new_cause
odoo.tools.convert.ParseError: while parsing file:/e:/clothing_erd_project/code/odoo-clothing/odoo/clothing_addons/decelop_proofing/views/proofing_task_list_view.xml:5, near
<record id="proofing_task_list_tree_view" model="ir.ui.view">
        <field name="name">任务清单</field>
        <field name="model">design.task.list</field>
        <field name="arch" type="xml">
            <tree>
                <field name="design_img_64" string="图片" widget="image" style="max-width: 30px;max-height: 30px;"/>
                <field name="task_num" string="任务编号"/>
                <field name="design_num" string="设计款号"/>
                <field name="name" string="款式名称"/>
                <field name="class_id" string="款式分类"/>
                <field name="designer_id" string="设计师"/>
                <field name="publisher_id" string="版师"/>
                <field name="proofer_id" string="样衣师"/>
                <field name="task_state" string="任务状态" decoration-success="task_state == '1' or task_state == '4' or task_state == '9'" decoration-info="task_state == '3' or task_state == '7'" decoration-danger="task_state == '2' or task_state == '5' or task_state == '8' or task_state == '6'" widget="badge" optional="show"/>
                <field name="design_agree_date" string="审稿完成日期"/>
                <field name="plate_agree_date" string="制版完成日期"/>
                <field name="proof_agree_date" string="打样完成日期"/>
                <field name="review_version_agree_date" string="审版完成日期"/>
                <field name="create_date" string="创建日期"/>
            </tree>
        </field>
    </record>

错误分析:

odoo.exceptions.ValidationError: 无效视图任务清单 (decelop_proofing.proofing_task_list_tree_view) 定义,在  decelop_proofing/views/proofing_task_list_view.xml中
首先看这条错误信息是指定义的tree视图无效,且并没有给出无效原因;
经过代码排查和版本回退,发现将style删除后错误解决;

 

总结:odoo14不可以直接在tree中通过style属性修改某个字段的样式,可以尝试使用css或者后台修改图片大小。

posted @ 2022-07-06 10:56  技术创造世界  阅读(548)  评论(0)    收藏  举报