2012-07-12 5 views
14

मेरे पास एक Django-CMS प्लगइन है जिसका उपयोग वस्तुओं की सूची प्रदर्शित करने के लिए किया जाता है। प्लगइन की आवश्यक कार्यक्षमता यह है कि सूची पृष्ठबद्ध है और सूची में वस्तुओं के गुणों के आधार पर पुन: आदेश दिया जा सकता है।मैं Django-CMS प्लगइन में अनुरोध ऑब्जेक्ट का उपयोग कैसे करूं?

AJAX के साथ इस कार्यक्षमता को संभालना इस विशेष मामले में एक आदर्श समाधान नहीं है, इसलिए मैं django पेजिनेटर का उपयोग करने की योजना बना रहा था, जिसके लिए 'पेज' क्वेरीस्ट्रिंग पैरामीटर की आवश्यकता होती है, और 'ऑर्डर' क्वेरीस्ट्रिंग पैरामीटर को पास करने के लिए मैं इसका उपयोग करूंगा क्वेरीसेट के आदेश को परिभाषित करें।

समस्या यह है कि मैं प्लगइन रेंडर फ़ंक्शन के भीतर से अनुरोध ऑब्जेक्ट तक पहुंचने के किसी भी तरह से नहीं देख सकता।

क्या किसी को पता है कि अनुरोध ऑब्जेक्ट को रेंडर फ़ंक्शन के भीतर से एक्सेस करना संभव है या कोई कामकाज सुझा सकता है?

उत्तर

22

सीएमएसपीएलयूजीनबेस की रेंडर विधि एक संदर्भ वस्तु लेती है। यदि आपका व्यू RequestContext उदाहरण का उपयोग कर रहा है, तो आप उस ऑब्जेक्ट के माध्यम से अनुरोध तक पहुंचने में सक्षम होना चाहिए।

class MyCoolPlugin(CMSPluginBase): 

    def render(self, context, instance, placeholder): 

     #Do something with the request, like access the user 
     current_user = context['request'].get('user', None) 
     ... 
+0

आप सही हैं। मैं बेवकूफ़ हूँ। मैं इसे संदर्भ के रूप में संदर्भित करने की कोशिश कर रहा था। संदर्भ [अनुरोध '] के बजाय अनुरोध। पुरानी आदतें मुश्किल से जाती हैं। –

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