/ / Django में ज्वलनशीलता को निष्क्रिय करें? - अजगर, डीजेंगो, पेजिनेशन, टेस्टीपी

Django tastypie में पेजिनेशन अक्षम करें? - अजगर, django, अंकन, tastypie

मैं एक 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