У мене є тастепи, які я працюю над і вперегляди списку для моїх ресурсів 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