Do not use field definitions when exporting data

Calling Model.fields_get is expensive especially for each record to export.

Closes #14061
(grafted from f9886ab808fd8eb8a0334e6fb0e1f1839b4ddfe9)

--HG--
branch : 7.0
This commit is contained in:
Cédric Krier
2025-06-10 14:29:07 +02:00
parent eecee06a15
commit 1099d520d7
+1 -2
View File
@@ -718,7 +718,6 @@ class ModelStorage(Model):
field_name, descriptor = field_name.split('.')
eModel = pool.get(value.__name__)
field = eModel._fields[field_name]
field_def = eModel.fields_get()[field_name]
if field.states and 'invisible' in field.states:
invisible = _record_eval_pyson(
value, field.states['invisible'])
@@ -729,7 +728,7 @@ class ModelStorage(Model):
value = getattr(field, descriptor)().__get__(value, eModel)
else:
value = getattr(value, field_name)
if field_def['type'] in {'one2many', 'many2many'}:
if field._type in {'one2many', 'many2many'}:
first = True
child_fields_names = [(x[:i + 1] == fields_tree[:i + 1]
and x[i + 1:]) or [] for x in fields_names]