Я создал свой собственный ресурс в Django-Tastypie API. Я выполнял некоторые операции отдыха, и теперь я хотел бы реализовать свой пользовательский указатель, который будет генерировать значения next/prev на основе «ключа», переданного по URL-адресу.Django-Tastypie custom paginator
Проблема заключается в следующем: если я передаю значение типа «http: localhost: 8000/api/stats/list/nextpage /», obj_get автоматически вызывается и не позволяет мне возвращать список значений, только один стоимость.
Так что я хочу, чтобы obj_get возвращал более одного значения. Мой api.py выглядит следующим образом:
Мой класс ресурсов:
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
Любая идея?