Python Django tastypie高级过滤

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')

我试图在我的资源中实现一个高级过滤器,但我需要一些帮助来构建和应用我自己的过滤器。 目标是在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')
   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数据库。。。