diff options
author | Elrond <elrond+mediagoblin.org@samba-tng.org> | 2011-12-24 19:08:20 +0100 |
---|---|---|
committer | Elrond <elrond+mediagoblin.org@samba-tng.org> | 2011-12-24 19:11:12 +0100 |
commit | 2608982885477e2f41579240d24a26864f718123 (patch) | |
tree | 1c79fbb2b74c0535b5f9acee29b41efa89f5472d | |
parent | fb7dd855de987d4e3dded1e55cad09a9fe6120cc (diff) | |
download | mediagoblin-2608982885477e2f41579240d24a26864f718123.tar.lz mediagoblin-2608982885477e2f41579240d24a26864f718123.tar.xz mediagoblin-2608982885477e2f41579240d24a26864f718123.zip |
Add search level one() method
And create a _fix_query_dict which converts '_id' to 'id'.
-rw-r--r-- | mediagoblin/db/sql/base.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/mediagoblin/db/sql/base.py b/mediagoblin/db/sql/base.py index b8d5cc96..38b04334 100644 --- a/mediagoblin/db/sql/base.py +++ b/mediagoblin/db/sql/base.py @@ -4,13 +4,26 @@ from sqlalchemy.orm import scoped_session, sessionmaker Session = scoped_session(sessionmaker()) +def _fix_query_dict(query_dict): + if '_id' in query_dict: + query_dict['id'] = query_dict.pop('_id') + + class GMGTableBase(object): query = Session.query_property() @classmethod def find(cls, query_dict={}): + _fix_query_dict(query_dict) return cls.query.filter_by(**query_dict) @classmethod def find_one(cls, query_dict={}): + _fix_query_dict(query_dict) return cls.query.filter_by(**query_dict).first() + + @classmethod + def one(cls, query_dict): + retval = cls.find_one(query_dict) + assert retval is not None + return retval |