Add search level one() method
[mediagoblin.git] / mediagoblin / db / sql / base.py
CommitLineData
7b194a79
E
1from sqlalchemy.orm import scoped_session, sessionmaker
2
3
4Session = scoped_session(sessionmaker())
5
6
26089828
E
7def _fix_query_dict(query_dict):
8 if '_id' in query_dict:
9 query_dict['id'] = query_dict.pop('_id')
10
11
7b194a79
E
12class GMGTableBase(object):
13 query = Session.query_property()
14
15 @classmethod
16 def find(cls, query_dict={}):
26089828 17 _fix_query_dict(query_dict)
7b194a79
E
18 return cls.query.filter_by(**query_dict)
19
20 @classmethod
21 def find_one(cls, query_dict={}):
26089828 22 _fix_query_dict(query_dict)
7b194a79 23 return cls.query.filter_by(**query_dict).first()
26089828
E
24
25 @classmethod
26 def one(cls, query_dict):
27 retval = cls.find_one(query_dict)
28 assert retval is not None
29 return retval