Skip to Content
Menú
This question has been flagged
2 Respostes
332 Vistes

I'm migrating a database from Odoo 17 to Odoo 18 in an Odoo SH environment, and I’ve encountered an issue: native views are not updating when I upgrade the native modules.

When I check under Technical > Views, I still see the old view definitions, and this is causing conflicts with other modules that depend on the updated views.

Has anyone experienced this issue in Odoo 18?

Is there a change in how Odoo handles native view updates that I should be aware of?

Any help or guidance would be greatly appreciated!

Avatar
Descartar

Please add details about which Views and if you are using the Upgrade Service.

Autor

There are several views that have a problem. But the main ones that conflict with l10n_ec_edi_pos are account.report_invoice, although I've also had a problem with web.external_layout_standard

Autor Best Answer

This is the error:

2025-07-26 12:51:04,574 4 ERROR test-test18-22265445 odoo.http: Exception during request handling.

Traceback (most recent call last):

File "/home/odoo/src/odoo/odoo/http.py", line 2533, in __call__

response = request._serve_db()

^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/http.py", line 2060, in _serve_db

return self._transactioning(

^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/http.py", line 2123, in _transactioning

return service_model.retrying(func, env=self.env)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/service/model.py", line 156, in retrying

result = func()

^^^^^^

File "/home/odoo/src/odoo/odoo/http.py", line 2090, in _serve_ir_http

response = self.dispatcher.dispatch(rule.endpoint, args)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/http.py", line 2251, in dispatch

return self.request.registry['ir.http']._dispatch(endpoint)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/addons/base/models/ir_http.py", line 333, in _dispatch

result = endpoint(**request.params)

^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/http.py", line 754, in route_wrapper

result = endpoint(self, *args, **params_ok)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/mail/models/discuss/mail_guest.py", line 38, in wrapper

return func(self, *args, **kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/mail/controllers/discuss/binary.py", line 68, in content_image

return super().content_image(*args, **kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/http.py", line 754, in route_wrapper

result = endpoint(self, *args, **params_ok)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/web/controllers/binary.py", line 185, in content_image

stream = request.env['ir.binary']._get_image_stream_from(

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/addons/base/models/ir_binary.py", line 203, in _get_image_stream_from

stream = self._get_stream_from(

^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/addons/base/models/ir_binary.py", line 127, in _get_stream_from

stream = self._record_to_stream(record, field_name)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/addons/base/models/ir_binary.py", line 86, in _record_to_stream

return field_attachment._to_http_stream()

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/addons/base/models/ir_attachment.py", line 803, in _to_http_stream

stat = os.stat(stream.path)

^^^^^^^^^^^^^^^^^^^^

FileNotFoundError: [Errno 2] No such file or directory: '/home/odoo/data/filestore/test-test18-22265445/b1/b1da3700bf7a58ece71956b5f2d83c9d2aa1d231'

2025-07-26 12:51:06,761 4 ERROR test-test18-22265445 odoo.http: Exception during request handling.

Traceback (most recent call last):

File "<728>", line 107, in template_728

File "<728>", line 89, in template_728_content

File "<728>", line 77, in template_728_t_call_0

File "<6086>", line 5, in not_found_template

ValueError: El elemento "<xpath expr="//t[@t-set=&#39;layout_document_title&#39;]">" no se puede localizar en la vista principal


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


Traceback (most recent call last):

File "/home/odoo/src/odoo/odoo/http.py", line 2533, in __call__

response = request._serve_db()

^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/http.py", line 2060, in _serve_db

return self._transactioning(

^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/http.py", line 2123, in _transactioning

return service_model.retrying(func, env=self.env)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/service/model.py", line 156, in retrying

result = func()

^^^^^^

File "/home/odoo/src/odoo/odoo/http.py", line 2090, in _serve_ir_http

response = self.dispatcher.dispatch(rule.endpoint, args)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/http.py", line 2338, in dispatch

result = self.request.registry['ir.http']._dispatch(endpoint)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/addons/base/models/ir_http.py", line 333, in _dispatch

result = endpoint(**request.params)

^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/http.py", line 754, in route_wrapper

result = endpoint(self, *args, **params_ok)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/web/controllers/dataset.py", line 36, in call_kw

return call_kw(request.env[model], method, args, kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/api.py", line 533, in call_kw

result = getattr(recs, name)(*args, **kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/pos_sale/models/pos_order.py", line 51, in sync_from_ui

data = super().sync_from_ui(orders)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/enterprise/pos_preparation_display/models/pos_order.py", line 11, in sync_from_ui

data = super().sync_from_ui(orders)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/point_of_sale/models/pos_order.py", line 1050, in sync_from_ui

order_ids.append(self._process_order(order, False))

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/pos_event/models/pos_order.py", line 45, in _process_order

res = super()._process_order(order, existing_order)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/point_of_sale/models/pos_order.py", line 119, in _process_order

return pos_order._process_saved_order(draft)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/point_of_sale/models/pos_order.py", line 157, in _process_saved_order

self._generate_pos_order_invoice()

File "/home/odoo/src/odoo/addons/point_of_sale/models/pos_order.py", line 974, in _generate_pos_order_invoice

new_move.with_context(skip_invoice_sync=True)._generate_and_send()

File "/home/odoo/src/odoo/addons/account/models/account_move.py", line 5826, in _generate_and_send

wizard.action_send_and_print(allow_fallback_pdf=allow_fallback_pdf)

File "/home/odoo/src/odoo/addons/account/wizard/account_move_send_wizard.py", line 294, in action_send_and_print

attachments = self._generate_and_send_invoices(

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/account/models/account_move_send.py", line 716, in _generate_and_send_invoices

self._generate_invoice_documents(moves_data, allow_fallback_pdf=allow_fallback_pdf)

File "/home/odoo/src/odoo/addons/account/models/account_move_send.py", line 641, in _generate_invoice_documents

self._prepare_invoice_pdf_report(batch)

File "/home/odoo/src/odoo/addons/account/models/account_move_send.py", line 354, in _prepare_invoice_pdf_report

content, report_type = self.env['ir.actions.report'].with_company(company_id)._pre_render_qweb_pdf(pdf_report.report_name, res_ids=ids)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/enterprise/l10n_ec_edi/models/ir_actions_report.py", line 22, in _pre_render_qweb_pdf

return super()._pre_render_qweb_pdf(report_ref, res_ids=res_ids, data=data)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/account/models/ir_actions_report.py", line 75, in _pre_render_qweb_pdf

return super()._pre_render_qweb_pdf(report_ref, res_ids=res_ids, data=data)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/addons/base/models/ir_actions_report.py", line 1006, in _pre_render_qweb_pdf

return self._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids), 'pdf'

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/sale_pdf_quote_builder/models/ir_actions_report.py", line 17, in _render_qweb_pdf_prepare_streams

result = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/enterprise/account_followup/models/ir_actions_report.py", line 12, in _render_qweb_pdf_prepare_streams

res = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/purchase/models/ir_actions_report.py", line 12, in _render_qweb_pdf_prepare_streams

collected_streams = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/account_edi_ubl_cii/models/ir_actions_report.py", line 11, in _render_qweb_pdf_prepare_streams

collected_streams = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/account_edi/models/ir_actions_report.py", line 14, in _render_qweb_pdf_prepare_streams

collected_streams = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/account/models/ir_actions_report.py", line 22, in _render_qweb_pdf_prepare_streams

return super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/addons/base/models/ir_actions_report.py", line 856, in _render_qweb_pdf_prepare_streams

html = self.with_context(**additional_context)._render_qweb_html(report_ref, all_res_ids_wo_stream, data=data)[0]

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/enterprise/web_studio/models/ir_actions_report.py", line 24, in _render_qweb_html

return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/addons/base/models/ir_actions_report.py", line 1094, in _render_qweb_html

return self._render_template(report.report_name, data), 'html'

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/addons/base/models/ir_actions_report.py", line 772, in _render_template

return view_obj._render_template(template, values).encode()

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/enterprise/web_studio/models/ir_ui_view.py", line 1332, in _render_template

return super(View, self)._render_template(template, values)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/addons/website/models/ir_ui_view.py", line 453, in _render_template

return super()._render_template(template, values=values)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 2199, in _render_template

return self.env['ir.qweb']._render(template, values)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/tools/profiler.py", line 313, in _tracked_method_render

return method_render(self, template, values, **options)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/odoo/src/odoo/odoo/addons/base/models/ir_qweb.py", line 606, in _render

result = ''.join(rendering)

^^^^^^^^^^^^^^^^^^

File "<729>", line 38, in template_729

File "<729>", line 27, in template_729_content

File "<728>", line 115, in template_728

odoo.addons.base.models.ir_qweb.QWebException: Error while render the template

ValueError: El elemento "<xpath expr="//t[@t-set=&#39;layout_document_title&#39;]">" no se puede localizar en la vista principal

Template: account.report_invoice

Path: /t/t/t/t[3]

Node: <t t-call="l10n_ec_edi.report_invoice_document" t-inner-content="True" t-options-lang="lang"/>


Solution

The problem was with some developments made in Odoo Studio.

Avatar
Descartar
Best Answer

Enable the Developer Mode (https://www.odoo.com/documentation/18.0/applications/general/developer_mode.html), then go to Settings -> Technical -> External Identifiers and search for the view in question. The view you are referring to most likely is having its Non Updatable flag set to true, thus the Upgrade of apps does not actually reset that view.

This is just an example:

Avatar
Descartar
Autor

Thanks for sharing.

I looked for views and they're unchecked, so that's not the problem.

Related Posts Respostes Vistes Activitat
1
de gen. 25
2501
1
de gen. 25
1121
0
de nov. 24
1034
1
de nov. 24
1945
0
d’ag. 24
1175