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:
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user