diff options
Diffstat (limited to 'mediagoblin/db/sql/base.py')
-rw-r--r-- | mediagoblin/db/sql/base.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/mediagoblin/db/sql/base.py b/mediagoblin/db/sql/base.py index 838080b0..ca0c8166 100644 --- a/mediagoblin/db/sql/base.py +++ b/mediagoblin/db/sql/base.py @@ -51,12 +51,18 @@ class GMGTableBase(object): query = Session.query_property() @classmethod - def find(cls, query_dict={}): + def find(cls, query_dict=None): + if query_dict is None: + query_dict = {} + _fix_query_dict(query_dict) return cls.query.filter_by(**query_dict) @classmethod - def find_one(cls, query_dict={}): + def find_one(cls, query_dict=None): + if query_dict is None: + query_dict = {} + _fix_query_dict(query_dict) return cls.query.filter_by(**query_dict).first() @@ -79,11 +85,13 @@ class GMGTableBase(object): sess.add(self) sess.commit() - def delete(self): + def delete(self, commit=True): + """Delete the object and commit the change immediately by default""" sess = object_session(self) assert sess is not None, "Not going to delete detached %r" % self sess.delete(self) - sess.commit() + if commit: + sess.commit() Base = declarative_base(cls=GMGTableBase) |