bugfix
This commit is contained in:
parent
ea15f463cd
commit
8b0db960a4
@ -35,9 +35,11 @@ except:
|
||||
|
||||
class DBFilter(object):
|
||||
def __init__(self,filterjson):
|
||||
if isinstance(filterjson, str):
|
||||
filterjson = json.loads(filterjson)
|
||||
self.filterjson = filterjson
|
||||
|
||||
def genFilterString(self, ns={}):
|
||||
def gen(self, ns={}):
|
||||
self.consts = {}
|
||||
ret = self._genFilterSQL(self.filterjson, ns)
|
||||
ns.update(self.consts)
|
||||
@ -112,9 +114,40 @@ class DBFilter(object):
|
||||
if 'const' in keys:
|
||||
cnt = len(self.consts.keys())
|
||||
name = f'filter_const_{cnt}'
|
||||
self.consts.update({nmae:fj.get('const')})
|
||||
self.consts.update({name:fj.get('const')})
|
||||
sql = '%s %s ${%s}$' % (fj.get('field'), fj.get('op'), name)
|
||||
return sql
|
||||
|
||||
sql = '%s %s ${%s}$' % (fj.get('field'), fj.get('op'), fj.get('var'))
|
||||
return sql
|
||||
|
||||
def default_filterjson(fields: list, ns: dict):
|
||||
fj = {}
|
||||
c = [ {
|
||||
'field':k,
|
||||
'op':'=',
|
||||
'var':k
|
||||
} for k in ns.keys() if k in fields ]
|
||||
return {
|
||||
'AND':c
|
||||
}
|
||||
|
||||
if __name__ == '__main__':
|
||||
fj = {
|
||||
"AND":[
|
||||
{
|
||||
"field":'field1',
|
||||
"op":"=",
|
||||
"var":"name"
|
||||
},
|
||||
{
|
||||
"field":'del_flg',
|
||||
"op":"=",
|
||||
"const":"0"
|
||||
}]
|
||||
}
|
||||
|
||||
dbf = DBFilter(fj)
|
||||
print(fj)
|
||||
print(dbf.gen({'name':'joe'}))
|
||||
print(f'{dbf.consts=}')
|
||||
|
@ -15,7 +15,6 @@ from appPublic.myTE import MyTemplateEngine
|
||||
from appPublic.objectAction import ObjectAction
|
||||
from appPublic.argsConvert import ArgsConvert,ConditionConvert
|
||||
from .filter import DBFilter
|
||||
from .const import *
|
||||
|
||||
def db_type_2_py_type(o):
|
||||
if isinstance(o,decimal.Decimal):
|
||||
@ -180,7 +179,7 @@ class SQLor(object):
|
||||
default it not support paging
|
||||
"""
|
||||
page = int(NS.get(paging['pagename'],1))
|
||||
rows = int(NS.get(paging['rowsname'],ROWS))
|
||||
rows = int(NS.get(paging['rowsname'],80))
|
||||
sort = NS.get(paging.get('sortname','sort'),None)
|
||||
if isinstance(sort, list):
|
||||
sort = ','.join(sort)
|
||||
@ -556,6 +555,7 @@ class SQLor(object):
|
||||
return desc
|
||||
desc = {}
|
||||
summary = [ i for i in await self.tables() if tablename.lower() == i['name'].lower() ]
|
||||
print(f'{summary=}, {tablename=}, {desc=}')
|
||||
pris = await self.primary(tablename)
|
||||
primary = [i['name'] for i in pris ]
|
||||
summary[0]['primary'] = primary
|
||||
|
Loading…
Reference in New Issue
Block a user