From 051c07966bf1c5ea699ef9f5702dbd09216fc4ba Mon Sep 17 00:00:00 2001 From: "Jay (Open ERP)" Date: Tue, 27 Jul 2010 15:09:09 +0530 Subject: [PATCH] [FIX] fields.related should not break when o2m,m2m returns null bzr revid: jvo@tinyerp.com-20100727093909-i2ixgcv2hrhcp0fq --- bin/osv/fields.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bin/osv/fields.py b/bin/osv/fields.py index 3ef167600eb..7c37dc89562 100644 --- a/bin/osv/fields.py +++ b/bin/osv/fields.py @@ -788,7 +788,10 @@ class related(function): self._field_get2(cr, uid, obj, context) if not ids: return {} relation = obj._name - res = {}.fromkeys(ids, False) + if self._type in ('one2many', 'many2many'): + res = {}.fromkeys(ids, []) + else: + res = {}.fromkeys(ids, False) objlst = obj.browse(cr, 1, ids, context=context) for data in objlst: @@ -808,11 +811,11 @@ class related(function): break if field_detail['type'] in ('one2many', 'many2many') and i != len(self.arg) - 1: t_data = t_data[self.arg[i]][0] - else: + elif t_data: t_data = t_data[self.arg[i]] if type(t_data) == type(objlst[0]): res[data.id] = t_data.id - else: + elif t_data: res[data.id] = t_data if self._type=='many2one': ids = filter(None, res.values())