diff --git a/odoo/models.py b/odoo/models.py index 97787970d51..eca249f6200 100644 --- a/odoo/models.py +++ b/odoo/models.py @@ -519,7 +519,7 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): cls._inherits = {} cls._depends = {} cls._constraints = {} - cls._sql_constraints = [] + cls._sql_constraints = {} for base in reversed(cls.__bases__): if not getattr(base, 'pool', None): @@ -540,10 +540,12 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): # cons may override a constraint with the same function name cls._constraints[getattr(cons[0], '__name__', id(cons[0]))] = cons - cls._sql_constraints += base._sql_constraints + for cons in base._sql_constraints: + cls._sql_constraints[cons[0]] = cons cls._sequence = cls._sequence or (cls._table + '_id_seq') cls._constraints = list(cls._constraints.values()) + cls._sql_constraints = list(cls._sql_constraints.values()) # update _inherits_children of parent models for parent_name in cls._inherits: