Python Django tastypie高级过滤
我试图在我的资源中实现一个高级过滤器,但我需要一些帮助来构建和应用我自己的过滤器。 目标是在my api UserResource中获取过滤器信息,然后通过如下url获取对象列表:Python Django tastypie高级过滤,python,django,filter,tastypie,Python,Django,Filter,Tastypie,我试图在我的资源中实现一个高级过滤器,但我需要一些帮助来构建和应用我自己的过滤器。 目标是在my api UserResource中获取过滤器信息,然后通过如下url获取对象列表: http://127.0.0.1:8000/api/users/list/&orderby="gender"&limit=10 class UserResource(Resource): firstName = fields.CharField(attribute='firstName')
http://127.0.0.1:8000/api/users/list/&orderby="gender"&limit=10
class UserResource(Resource):
firstName = fields.CharField(attribute='firstName')
lastName = fields.CharField(attribute='lastName')
gender= fields.CharField(attribute='gender')
status= fields.IntegerField(attribute='status')
date= fields.DateTimeField(attribute='date')
class Meta:
resource_name = 'users/list'
object_class = dict2obj
authorization = Authorization()
def detail_uri_kwargs(self, bundle_or_obj):
kwargs = {}
if isinstance(bundle_or_obj, Bundle):
kwargs['pk'] = bundle_or_obj.obj.firstName
else:
kwargs['pk'] = bundle_or_obj.firstName
return kwargs
def obj_get_list(self, request=None, **kwargs):
db = MySQLdb.connect(host='xxx.xxx.xxx',user='test2',passwd='xxx',db='mydb')
cur = db.cursor()
cur.execute("SELECT * FROM users order by gender Desc limit 0,10")
users=cur.fetchall()
#...
db.close()
return posts
实际上,我的资源如下所示:
http://127.0.0.1:8000/api/users/list/&orderby="gender"&limit=10
class UserResource(Resource):
firstName = fields.CharField(attribute='firstName')
lastName = fields.CharField(attribute='lastName')
gender= fields.CharField(attribute='gender')
status= fields.IntegerField(attribute='status')
date= fields.DateTimeField(attribute='date')
class Meta:
resource_name = 'users/list'
object_class = dict2obj
authorization = Authorization()
def detail_uri_kwargs(self, bundle_or_obj):
kwargs = {}
if isinstance(bundle_or_obj, Bundle):
kwargs['pk'] = bundle_or_obj.obj.firstName
else:
kwargs['pk'] = bundle_or_obj.firstName
return kwargs
def obj_get_list(self, request=None, **kwargs):
db = MySQLdb.connect(host='xxx.xxx.xxx',user='test2',passwd='xxx',db='mydb')
cur = db.cursor()
cur.execute("SELECT * FROM users order by gender Desc limit 0,10")
users=cur.fetchall()
#...
db.close()
return posts
我想知道如何获取过滤器信息以返回我的obj列表。是否有理由直接使用MySQLdb而不是django ORM?是的,因为我正在执行一个项目,该项目旨在通过json格式的api提供统计数据,数据属于另一个应用程序,该应用程序链接到这些sql数据库。。。