From f07f5f079265d6e5494095ce280f3a0a57794d85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 29 Jun 2025 19:13:42 +0200 Subject: [PATCH] Do not restore values for created records when exception is raised when saving Once a record has been created, the id is modified which change its hash value such that it can not be found anymore. But as the creation succeeded (and only the write part has failed) we can just restore the values to None. Closes #14093 (grafted from a56b25f536568b808bc4c57b6cee03408eaf06f2) --HG-- branch : 7.0 --- trytond/trytond/model/modelstorage.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/trytond/trytond/model/modelstorage.py b/trytond/trytond/model/modelstorage.py index 9c03d45715..f1a71bcb71 100644 --- a/trytond/trytond/model/modelstorage.py +++ b/trytond/trytond/model/modelstorage.py @@ -1997,8 +1997,8 @@ class ModelStorage(Model): cls.write(*sum( (([r], save_values[r]) for r in to_write), ())) except Exception: - for record in to_create + to_write: - record._values = values[record] + for record in chain(to_create, to_write): + record._values = values.get(record) raise for record in to_create + to_write: record._init_values = None