Skip to content

Commit

Permalink
Merge pull request #114 from vgavro/fix_permanent_instance_on_exception
Browse files Browse the repository at this point in the history
bugfix: model instance stays permanent on schema instance if load failed
  • Loading branch information
sloria committed Oct 24, 2017
2 parents 1b7c87f + bd52c83 commit d0f9114
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions marshmallow_sqlalchemy/schema.py
Expand Up @@ -180,12 +180,13 @@ def load(self, data, session=None, instance=None, *args, **kwargs):
:param instance: Optional existing instance to modify.
"""
self.session = session or self.session
self.instance = instance or self.instance
if not self.session:
raise ValueError('Deserialization requires a session')
ret = super(ModelSchema, self).load(data, *args, **kwargs)
self.instance = None
return ret
self.instance = instance or self.instance
try:
return super(ModelSchema, self).load(data, *args, **kwargs)
finally:
self.instance = None

def validate(self, data, session=None, *args, **kwargs):
self.session = session or self.session
Expand Down

0 comments on commit d0f9114

Please sign in to comment.