[GH-ISSUE #112] does sandman2 query data support “>” "<" #59

Closed
opened 2026-02-26 01:33:01 +03:00 by kerem · 1 comment
Owner

Originally created by @abcweizhuo on GitHub (Jul 11, 2019).
Original GitHub issue: https://github.com/jeffknupp/sandman2/issues/112

Environment

MySQL 8.0
sandman2 1.2.1
pymysql 0.9.3
Postman 7.2.2
Operating system: win7 x64

Description of issue

step1 create table and insert data
create database paspce ,create table t_areainfo , insert data to table.
like this
"create database if not exists pspace;
create table if not exists pspace.t_areainfo(
id int primary key,
level int,
name varchar(255),
parentId int,
status int
);
insert into pspace.t_areainfo values(1, 0, 'aaa', 0, 0),(2, 0, 'bbb', 1, 0),(3, 0, 'ccc', 1, 0),(4, 0, 'ddd', 2, 0);"

step2 start sandman2ctl then use postman query data
start sandman2ctl in cmd like this "sandman2ctl mysql+pymysql://admin:juan@localhost/pspace".
then use postman query data by get at this url "127.0.0.1:5000/t_areainfo/", it works well.

step3 query data by get and use "<"
query data by get at url "127.0.0.1:5000/t_areainfo/?id<3" reveive this message
"{
"message": "Invalid field [id<3]"
}"
is bug or not support?tell me thanks。

Originally created by @abcweizhuo on GitHub (Jul 11, 2019). Original GitHub issue: https://github.com/jeffknupp/sandman2/issues/112 ### Environment MySQL 8.0 sandman2 1.2.1 pymysql 0.9.3 Postman 7.2.2 Operating system: win7 x64 ### Description of issue **step1 create table and insert data** create database paspce ,create table t_areainfo , insert data to table. like this "create database if not exists pspace; create table if not exists pspace.t_areainfo( id int primary key, level int, name varchar(255), parentId int, status int ); insert into pspace.t_areainfo values(1, 0, 'aaa', 0, 0),(2, 0, 'bbb', 1, 0),(3, 0, 'ccc', 1, 0),(4, 0, 'ddd', 2, 0);" **step2 start sandman2ctl then use postman query data** start sandman2ctl in cmd like this "sandman2ctl mysql+pymysql://admin:juan@localhost/pspace". then use postman query data by get at this url "127.0.0.1:5000/t_areainfo/", it works well. **step3 query data by get and use "<"** query data by get at url "127.0.0.1:5000/t_areainfo/?id<3" reveive this message "{ "message": "Invalid field [id<3]" }" is bug or not support?tell me thanks。
kerem closed this issue 2026-02-26 01:33:01 +03:00
Author
Owner

@abcweizhuo commented on GitHub (Jul 22, 2019):

#deal with key like '?id>1" elif len(value) == 0 and ('>' in key or '<' in key): if '>' in key: filterindex = key.find('>') keytmp = key[:filterindex] else: filterindex = key.find('<') keytmp = key[:filterindex] if hasattr(self.__model__, keytmp): if '>' in key: filters.append(getattr(self.__model__, keytmp) > key[filterindex+1:]) else: filters.append(getattr(self.__model__, keytmp) < key[filterindex+1:]) else: raise BadRequestException('Invalid field [{}]'.format(keytmp))
in function _all_resources(self), add this ,i can deal with with key like '?id>1"

<!-- gh-comment-id:513675789 --> @abcweizhuo commented on GitHub (Jul 22, 2019): `#deal with key like '?id>1" elif len(value) == 0 and ('>' in key or '<' in key): if '>' in key: filterindex = key.find('>') keytmp = key[:filterindex] else: filterindex = key.find('<') keytmp = key[:filterindex] if hasattr(self.__model__, keytmp): if '>' in key: filters.append(getattr(self.__model__, keytmp) > key[filterindex+1:]) else: filters.append(getattr(self.__model__, keytmp) < key[filterindex+1:]) else: raise BadRequestException('Invalid field [{}]'.format(keytmp))` in function _all_resources(self), add this ,i can deal with with key like '?id>1"
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/sandman2-jeffknupp#59
No description provided.