मैं एक tastypie एपीआई है कि मैं पर और में काम कर रहा हूँसूची में मेरे एपीआई संसाधनों के लिए मैं "डेटा की पूरी सूची को लागू किए बिना प्राप्त करना पसंद करता हूं, सूची में वस्तुओं की संख्या की परवाह किए बिना। मुझे उच्च सीमा के साथ कस्टम पेजिनेटर की आवश्यकता नहीं है, मुझे पसंद है"। पूरी तरह से पृष्ठन अक्षम करें।
मैं संभावित रूप से निपटने के लिए अपने ग्राहक को संशोधित कर सकता थापृष्ठ पर अंक लगाना (एपीआई वेब ब्राउज़र के बजाय C ++ DLL से एक्सेस किया जा रहा है, इसलिए यह थोड़ा अधिक जटिल लेकिन संभव है) लेकिन अगर मैं इसे अक्षम कर सकता हूं तो यह आसान होगा।
क्या विभिन्न संसाधनों के लिए पेजिनेटर को निष्क्रिय करने के लिए एक स्विच है, या संभवत: उस एपी ऑब्जेक्ट पर पंजीकृत सभी संसाधनों पर पेजिनेशन को अक्षम करने के लिए एक एपि वाइड स्विच है?
उत्तर:
उत्तर № 1 के लिए 10ऐसा करने के लिए आपको कम से कम दो अलग-अलग चीजों को सेट करना होगा।
साइट सेटिंग फ़ाइल में, सेट करें
API_LIMIT_PER_PAGE = 0
संसाधन मेटा क्लास के लिए जिसे आप सेट करने के लिए पेजिनेशन अक्षम करना चाहते हैं:
class MyResource(ModelResource):
...
class Meta:
...
max_limit = None
फिर यदि आप संसाधन के सूची दृश्य पर जाते हैं, तो दी गई सामग्री को 0 की सीमा दिखानी चाहिए।
जवाब के लिए 3 № 2
वैकल्पिक समाधान DummyPaginator वर्ग को परिभाषित करना होगा (मूल रूप से यहाँ वर्णित है: https://github.com/toastdriven/django-tastypie/issues/777), जो कि टैस्टिपी का हिस्सा होना चाहिए (लेकिन यह दुर्भाग्य से नहीं है ...):
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, }
फिर, अपने संसाधन मेटा में, आप सेट करते हैं:
paginator_class = DummyPaginator