示例#1
0
 def filter_by(me, **kargs):
     ''' A.query().filter_by( x=4, **{'b.c.d':5, ...}) '''
     r = me
     for k, v in kargs.iteritems():
         attrs = k.split('.')
         if attrs[:-1]:
             r = r.join(attrs[:-1])
         r = _saQuery.filter_by(r, **{attrs[-1]: v})
         r = r.reset_joinpoint()
     return r
示例#2
0
文件: query.py 项目: hstanev/dbcook
 def filter_by(me, **kargs):
     """ A.query().filter_by( x=4, **{'b.c.d':5, ...}) """
     r = me
     for k, v in kargs.iteritems():
         attrs = k.split(".")
         if attrs[:-1]:
             r = r.join(attrs[:-1])
         r = _saQuery.filter_by(r, **{attrs[-1]: v})
         r = r.reset_joinpoint()
     return r
示例#3
0
 def filter_by_subattr(me, _subattr, **kargs):
     ''' A.query().filter( A.b.has( cod= b1.cod)).filter( A.c.has( cod= c1.cod))
      == A.query().join( A.b).filter_by( cod= b1.cod).join( A.c).filter_by( cod= c1.cod))
      -> A.query().filter_by_subattr( 'cod', b=b1, c=c1)
     used for hiding .obj_id, similar to .dbid being hidden in A.ptrB == b1, e.g.
        Pozicia.query( lambda self: self.firma.obj_id == f1.obj_id)
     -> Pozicia.query().filter_by_obj_id( firma = f1)
     '''
     r = me
     for k, v in kargs.iteritems():
         r = r.join(k.split('.'))
         r = _saQuery.filter_by(r, **{_subattr: getattr(v, _subattr)})
         r = r.reset_joinpoint()
     return r
示例#4
0
文件: query.py 项目: hstanev/dbcook
 def filter_by_subattr(me, _subattr, **kargs):
     """ A.query().filter( A.b.has( cod= b1.cod)).filter( A.c.has( cod= c1.cod))
      == A.query().join( A.b).filter_by( cod= b1.cod).join( A.c).filter_by( cod= c1.cod))
      -> A.query().filter_by_subattr( 'cod', b=b1, c=c1)
     used for hiding .obj_id, similar to .dbid being hidden in A.ptrB == b1, e.g.
        Pozicia.query( lambda self: self.firma.obj_id == f1.obj_id)
     -> Pozicia.query().filter_by_obj_id( firma = f1)
     """
     r = me
     for k, v in kargs.iteritems():
         r = r.join(k.split("."))
         r = _saQuery.filter_by(r, **{_subattr: getattr(v, _subattr)})
         r = r.reset_joinpoint()
     return r