changeset 8d9fe8efe6ec in trytond:default
details: https://hg.tryton.org/trytond?cmd=changeset;node=8d9fe8efe6ec
description:
Take the field type from the right definition
The field type should be taken from the current fields definition and
not from
the class.
issue8212
review273131002
diffstat:
trytond/model/modelstorage.py | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diffs (26 lines):
diff -r fac8fda20028 -r 8d9fe8efe6ec trytond/model/modelstorage.py
--- a/trytond/model/modelstorage.py Fri Mar 22 18:18:36 2019 +0100
+++ b/trytond/model/modelstorage.py Fri Mar 22 18:25:52 2019 +0100
@@ -759,11 +759,10 @@
return res
@memoize(1000)
- def get_by_id(value, field):
+ def get_by_id(value, field, ftype):
if not value:
return None
relation = None
- ftype = fields_def[field[-1][:-3]]['type']
if ftype == 'many2many':
value = next(csv.reader(value.splitlines(), delimiter=',',
quoting=csv.QUOTE_NONE, escapechar='\\'))
@@ -810,7 +809,8 @@
is_prefix_len = (len(field) == (prefix_len + 1))
value = line[i]
if is_prefix_len and field[-1].endswith(':id'):
- row[field[0][:-3]] = get_by_id(value, field)
+ ftype = fields_def[field[-1][:-3]]['type']
+ row[field[0][:-3]] = get_by_id(value, field, ftype)
elif is_prefix_len and ':lang=' in field[-1]:
field_name, lang = field[-1].split(':lang=')
translate.setdefault(lang, {})[field_name] = value or False