Ir al contenido
Menú
Se marcó esta pregunta
4 Respuestas
14019 Vistas

Hallo Community, 

This is the second time that I encounter this problem. I upgrade my modules multiple times a day when working on them, but sometimes for no apparent reason a view-xml is not loading. 

In the logging of the server I get the message that the view is actually loaded, but when I get the error message, or lookup the view in the database, the old xml is still present. 

I tried two ways of upgrading modules: using the command line and -u module or using the user interface and select the module and upgrade manually. Both give the same problem.

The only way I manage to work around this problem is uninstalling the module and reinstalling. But this should not be necessary. Certainly because with some modules you can have data loss. 

The weird thing for me is that the logging actually confirms that the file is getting loaded, but the xml is not updated to the database. And because the module installs flawlessly after uninstallation sounds to me like the code is correct and is not the problem.

Does anybody had the same problem and knows what causes this? Thank you for your response. 

Avatar
Descartar

This is not default behavior, I have done thousands of times. It only hapoens to me if the new view has errors. You may check if you also change python files in the same update, in this case you should restart the Odoo service (not server).

Autor

I know, this is not the way it should be. Next time this happens (i hope not) i am going to try to remove the view-xml that causes the error so that all the view-records in the database are removed and try after that to reinstall the module. Hope that that does the trick. Because the problem with uninstalling and reinstalling is that you lose all the data in the fields that are in the module.

Autor Mejor respuesta

I had this problem again with and I think I found what triggers this problem.

I get this problem when an existing field  (from  the  module) is not present any more in the new updated version of the custom module. That is when I get this error. For some reason odoo doesn't wants to update the xml views that contain the deleted field. 

So it keeps referring  to  the  old  xml  and  obviously  giving  an  error  because this field doesn't exists any more. 

The Solution I found is to delete all the problem cuasing views from the database.  You  can  do  this  in developer mode. technical-settings->views. Once they are deleted from the database reinstall the module and voila, it installs without a problem.

If for some reason you can't even access the settings no more because of the bug you get in odoo (like I had last time) you can copy-paste this to your url and get to the view-records right away.   /web?debug=1#action=28&\model=ir.ui.view&view_type=list&cids=1&menu_id=4


Update: @avinash NK added the option the refresh the xml from the file. This is an other way of doing the xml-refresh and less extreme than deleting the view.


I hope this helps someone having the same problem. 

Avatar
Descartar

Valid analysis and helpful URL

Mejor respuesta

Hi Odoo Community,

I recently encountered a similar issue while working with the l10n_es_partner module in Odoo, where some views referenced in ir.model.data were causing errors because the corresponding records in ir.ui.view didn’t exist. I wanted to share how I resolved it in case it helps someone else facing a similar problem.

The Problem

When I tried to update or work with the l10n_es_partner module, I kept getting errors related to views (e.g., view_partner_form). After some investigation, I found that the ir.model.data table contained records pointing to views in ir.ui.view, but those views were missing from the database. This mismatch caused the module to fail when trying to load or update its views.

To confirm this, I ran the following SQL query to inspect the ir.model.data entries for the l10n_es_partner module:

SELECT *

FROM ir_model_data

WHERE module = 'l10n_es_partner'

AND model = 'ir.ui.view';

The result showed four records:

idcreate_uidcreate_datewrite_datewrite_uidnoupdatenamemodulemodelres_idstudio
991312017-09-09 10:23:28.4406952025-02-21 11:44:31.7711721fview_res_bank_forml10n_es_partnerir.ui.view584
991512017-09-09 10:23:28.4406952025-02-21 11:44:31.7711721fview_partner_forml10n_es_partnerir.ui.view586
991612017-09-09 10:23:28.4406952025-02-21 11:44:31.7711721fview_partner_simple_forml10n_es_partnerir.ui.view587
14132132025-02-21 11:42:40.9836922025-02-21 11:44:31.771172fl10n_es_partner_import_wizardl10n_es_partnerir.ui.view5848

(4 rows)

However, when I checked the ir.ui.view table for these res_id values (584, 586, 587, 5848), those view records didn’t exist. This inconsistency was the root of the issue.

The Solution

To fix this, I decided to clean up the ir.model.data table by removing the orphaned references. I ran the following SQL command:

DELETE

FROM ir_model_data

WHERE module = 'l10n_es_partner'

AND model = 'ir.ui.view';


This deleted the four problematic records (DELETE 4 confirmed the operation). After that, I updated the l10n_es_partner module (either via the Odoo UI with -u l10n_es_partner or by restarting the server), and the views were recreated correctly from the module’s XML definitions. The errors disappeared, and everything worked as expected.

Why This Worked

The ir.model.data table links XML IDs to database records (like views in ir.ui.view). If a view is deleted or fails to be created but its ir.model.data entry remains, Odoo assumes the view still exists and throws errors when it can’t find it. By removing the stale entries, I allowed the module to regenerate the views from scratch during the update.

Caution

  • Backup First: Always back up your database before running DELETE queries, as this directly modifies data.
  • Check Your Case: This solution applies if the views are truly missing. If they exist but are broken, you might need to debug the XML or module instead.

Final Thoughts

This issue might occur due to interrupted module installs, manual deletions, or database migrations gone wrong. If you’re facing similar view-related errors, I recommend checking ir.model.data against ir.ui.view to ensure consistency.

Hope this helps someone out there! Let me know if you have questions or a better approach.

Best regards,

Avatar
Descartar
Mejor respuesta

Please see the following method



Many Thanks

Avatar
Descartar
Mejor respuesta

Hi, 

I think the problem is because the xml file is loaded with noupdate attribute set as True somehow.
Try adding your xml code inside data tag with noupdate value set as 0 and check.

< data noupdate="0">
...
< /data>

Regards

Avatar
Descartar
Autor

Thanks for your reply, but this wasn't the case either. I still don't know what causes this, but I found a way around this.

Publicaciones relacionadas Respuestas Vistas Actividad
0
ene 24
161
0
oct 23
1170
1
nov 23
4782
0
jun 23
1642
1
feb 22
3402