2013-04-03 11 views
8

मेरे पास एक स्वादिष्ट एपीआई है जो मैं अपने एपीआई संसाधनों के लिए सूची दृश्यों पर काम कर रहा हूं और सूची में वस्तुओं की संख्या के बावजूद, पेजिंग की अनुमति के बिना डेटा की पूरी सूची प्राप्त करना चाहता हूं। मुझे एक उच्च सीमा के साथ एक कस्टम पेजिनेटर की आवश्यकता नहीं है, मैं पूरी तरह से अंकन को अक्षम करना चाहता हूं।Django tastypie में पेजिनेशन अक्षम करें?

मैं अपने क्लाइंट को पेजिनेशन से निपटने के लिए संभावित रूप से संशोधित कर सकता हूं (एपीआई को एक वेब ब्राउज़र की बजाय सी ++ डीएलएल से एक्सेस किया जा रहा है, इसलिए यह थोड़ा और जटिल है लेकिन संभव है) लेकिन अगर मैं इसे अक्षम कर सकता हूं तो यह आसान होगा।

क्या विभिन्न संसाधनों के लिए पेजिनेटर को अक्षम करने के लिए कोई स्विच है, या संभवतः उस एपीआई ऑब्जेक्ट में पंजीकृत सभी संसाधनों पर पेजिनेशन अक्षम करने के लिए एक एपीआई वाइड स्विच है?

+0

https://github.com/toastdriven/django- tastypie/pull/639 – catherine

+1

क्या आप स्पष्टीकरण दे सकते हैं कि मेरे प्रश्न के बारे में क्या पुल अनुरोध कह रहा है? ऐसा लगता है कि उस धागे में पेजिनेशन सीमाओं के बारे में चर्चा हो रही है लेकिन इसे पढ़ने पर मुझे स्पष्ट नहीं है कि मुझे पेजिनेशन को अक्षम करने के लिए क्या करना चाहिए। क्या मुझे सेटिंग्स.एपीआई_एलआईएमआईआईपी_PAGE को किसी भी को सेट नहीं करना चाहिए, क्या मुझे सेटिंग्स.एपीआई_एमएक्स_एलआईएमआईआईपीआरएजीएजी को कोई भी सेट नहीं करना चाहिए, क्या मैं संसाधन के मेटा क्लास में कुछ लिख सकता हूं जो सीमा आदि को अक्षम कर देगा ..? शुरुआती पुल अनुरोध किसी ऐसे व्यक्ति के लिए भ्रमित रूप से लिखा गया है जो स्वादिष्ट के अंतर्निहित तंत्र से परिचित नहीं है और अनुवर्ती टिप्पणियां वास्तव में बहुत स्पष्ट नहीं करती हैं। – Alex

उत्तर

10

ऐसा करने के लिए आपको कम से कम दो अलग-अलग चीजों को सेट करने की आवश्यकता है।

साइट सेटिंग्स फ़ाइल में सेट

API_LIMIT_PER_PAGE = 0 

संसाधन मेटा वर्ग है कि आप के लिए पृष्ठांकन को निष्क्रिय करना चाहते में, सेट करें:

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

तो अगर आप की सूची दृश्य पर जाएं संसाधन, लौटाई गई सामग्री 0

3

वैकल्पिक समाधान डमीपाजिनेटर क्लास को परिभाषित करना होगा (मूल रूप से यहां वर्णित: https://github.com/toastdriven/django-tastypie/issues/777), जो शू (लेकिन यह दुर्भाग्य नहीं है ...) tastypie का हिस्सा बनने के uld:

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 
+0

अरे, पेज फ़ंक्शन को __init__ फ़ंक्शन –

+0

@GeorgeThomas के भीतर घोंसला नहीं किया जाना चाहिए - ठीक है, धन्यवाद! – mnowotka

संबंधित मुद्दे