[FIX] fields.py: One2many fields only set inverse field on Many2one fields
authorChristophe Simonis <chs@odoo.com>
Tue, 9 Sep 2014 11:26:51 +0000 (13:26 +0200)
committerChristophe Simonis <chs@odoo.com>
Tue, 9 Sep 2014 11:28:48 +0000 (13:28 +0200)
openerp/fields.py

index 3c4744a..1af7283 100644 (file)
@@ -1548,8 +1548,12 @@ class One2many(_RelationalMulti):
         if self.inverse_name:
             # link self to its inverse field and vice-versa
             invf = env[self.comodel_name]._fields[self.inverse_name]
-            self.inverse_fields.append(invf)
-            invf.inverse_fields.append(self)
+            # In some rare cases, a `One2many` field can link to `Int` field
+            # (res_model/res_id pattern). Only inverse the field if this is
+            # a `Many2one` field.
+            if isinstance(invf, Many2one):
+                self.inverse_fields.append(invf)
+                invf.inverse_fields.append(self)
 
     _description_relation_field = property(attrgetter('inverse_name'))