diff --git a/openerp/osv/fields.py b/openerp/osv/fields.py index 1ef47bc94af..26ec6fbe112 100644 --- a/openerp/osv/fields.py +++ b/openerp/osv/fields.py @@ -571,7 +571,9 @@ class one2many(_column): else: cr.execute('update '+_table+' set '+self._fields_id+'=null where id=%s', (act[1],)) elif act[0] == 4: - cr.execute("select 1 from {0} where id=%s and {1}=%s".format(_table, self._fields_id), (act[1], id)) + field_model = obj.pool.get(self._obj)._all_columns[self._fields_id].parent_model + field_table = obj.pool.get(field_model)._table + cr.execute("select 1 from {0} where id=%s and {1}=%s".format(field_table, self._fields_id), (act[1], id)) if not cr.fetchone(): # Must use write() to recompute parent_store structure if needed and check access rules obj.write(cr, user, [act[1]], {self._fields_id:id}, context=context or {})