/ / Django-Tastypie paginateur personnalisé - django, repos, pagination, tastypie

Pagination personnalisée Django-Tastypie - Django, repos, pagination, tastypie

J'ai créé ma propre ressource sur monAPI Django-Tastypie. J'ai "implémenté quelques opérations de repos et maintenant je voudrais implémenter mon paginateur personnalisé, qui générera des valeurs next / prev basées sur une" clé "passée par url.

Le problème est: si je passe une valeur comme "http: localhost: 8000 / api / stats / list / nextpage /", l'obj_get est automatiquement appelé et ne me laisse pas retourner une liste de valeurs, une seule valeur.

Je veux donc que obj_get renvoie plus d'une valeur. Mon api.py ressemble à ceci:

Ma classe de ressources:

class CountryCountResource(Resource):

countryName= fields.CharField(attribute="countryName")
countryCount = fields.FloatField(attribute="countryCount")

class Meta:
resource_name = "country/list"
object_class = dict2obj
include_resource_uri = False
authorization = DjangoAuthorization()
authentication = BasicAuthentication()

def detail_uri_kwargs(self, bundle_or_obj):
kwargs = {}

if isinstance(bundle_or_obj, Bundle):
kwargs["pk"] = bundle_or_obj.obj.countryName
else:
kwargs["pk"] = bundle_or_obj.countryName

return kwargs

def obj_get_list(self, request=None, **kwargs):

db = MySQLdb.connect(host="xxxxxx",user="xxx",passwd="xxx",db="xxx")
cur = db.cursor()
cur.execute("SELECT count(*) FROM users")
total_users=cur.fetchall()
for item in total_users:
totalint=int(item[0])

cur.execute("SELECT country,count(country) FROM users GROUP BY country ORDER BY    count(country) DESC LIMIT 0,10")

#ordered tuple
mylist=cur.fetchall()

newlist=[]
for i in mylist:
auxd={}
auxd["countryName"]=str(i[0])
res=int(i[1])/float(totalint)
res="%.2f" % res
auxd["countryCount"]=res
newlist.append(dict2obj(auxd))

db.close()

return newlist

def obj_get(self, request=None, **kwargs):
return newlist <<<<<<------- DONT WORK

Une idée?

Réponses:

0 pour la réponse № 1

Je recommande fortement d'utiliser ou de personnaliser le comportement du paginateur fourni avec ModelResource par défaut: http://django-tastypie.readthedocs.org/en/latest/paginator.html