/ / Вимкнути сторінки в Django tastypie? - python, django, pagination, tastypie

Вимкнути перейменування в Django tastypie? - python, django, pagination, tastypie

У мене є тастепи, які я працюю над і вперегляди списку для моїх ресурсів API Я хотів би отримати весь список даних без набору сторінок, незалежно від кількості об'єктів у списку. Мені не потрібен спеціальний розпізнавач із високою лімією, я б хотів відключити цілі сторінки.

Я міг потенційно змінити мого клієнта, щоб мати справусторінок (API доступ додається з C ++ DLL, а не веб-браузера, так що це трохи складніше, але можливо), але якщо я можу відключити його, це буде простіше.

Чи існує перемикач, щоб вимкнути розпізнавач для різних ресурсів, або, можливо, широкий перемикач API, щоб вимкнути перейменування всіх ресурсів, зареєстрованих у цьому об'єкті api?

Відповіді:

10 за відповідь № 1

Для цього потрібно встановити щонайменше два різні речі.

У файлі налаштувань сайту встановіть

API_LIMIT_PER_PAGE = 0

У ресурсі Meta клас, який ви хочете вимкнути для сторінок, встановіть:

class MyResource(ModelResource):
...
class Meta:
...
max_limit = None

Тоді, якщо ви переходите до перегляду списку ресурсу, то повернений вміст повинен показувати ліміт 0.


3 для відповіді № 2

Альтернативним рішенням буде визначення класу DummyPaginator (спочатку описаний тут: https://github.com/toastdriven/django-tastypie/issues/777), який повинен бути частиною tastypie (але це не на жаль ...):

class DummyPaginator(object):
def __init__(self, request_data, objects, resource_uri=None,
limit=None, offset=0, max_limit=1000,
collection_name="objects"):
self.objects = objects
self.collection_name = collection_name

def page(self):
return { self.collection_name: self.objects, }

Потім у вашому ресурсі Meta ви встановлюєте:

 paginator_class = DummyPaginator