Django

2011-08-31 20 views
6

में सिग्नल हैंडलर से सत्र कैसे प्राप्त करें मैं एक सरल रेफ़रल सिस्टम लागू कर रहा हूं। मेरे पास मिडलवेयर है जो रेफरिंग उपयोगकर्ता की पहचान करने वाले सत्र चर सेट करता है। मेरे पास एक मॉडल है जो संदर्भित उपयोगकर्ता को संदर्भित उपयोगकर्ता से जोड़ता है। मैं इस मॉडल को पॉप्युलेट करने के लिए उपयोगकर्ता ऑब्जेक्ट से post_save सिग्नल का उपयोग करने का प्रयास कर रहा हूं। मैं post_save सिग्नल हैंडलर के भीतर से सत्र ऑब्जेक्ट को कैसे एक्सेस करूं?Django

उत्तर

1

thread specific global variable का उपयोग किए बिना कोई रास्ता नहीं है।

लेकिन मुझे यकीन नहीं है कि आपको इसकी आवश्यकता है। मेरे रेफ़रल और आमंत्रण प्रणाली के लिए मेरे पास उपयोगकर्ता सामान्य के रूप में पंजीकृत है और उपयोगकर्ता के निर्माण के बाद, सत्र से रेफ़रल प्राप्त करें। लगभग सभी स्थितियों में यह अभी भी एक ही सत्र होगा।

यदि आपके सत्र के बारे में कुछ ऐसा है जो इसे रोकता है, तो मैं इसे उपयोगकर्ता बनाने के फॉर्म में जोड़ दूंगा।

+0

मुझे कुछ समस्याएं मिली हैं। 1. मेरा ऑथ सिस्टम एक अलग ऐप है (डीजेंगो ऑथ पर बनाया गया है) जिसके लिए ईमेल सक्रियण की आवश्यकता है। सत्र समाप्त होने के बाद उपयोगकर्ता अक्सर एफआईआर समय के लिए लॉग इन नहीं करते हैं। इस प्रकार, सृजन पर रेफ़रल लॉग ऑन होना आवश्यक है। 2. मैं * कोशिश कर रहा हूं * ऑथ (या सृजन) विचार/टेम्पलेट्स के साथ गड़बड़ नहीं कर रहा हूं क्योंकि मैं आशा करता हूं कि यह पूरी तरह से ऑथ सिस्टम (यदि संभव हो) से अलग हो। अभी, यह अच्छा नहीं लग रहा है। –

+0

हाँ, आपको वैश्विक धागे विशिष्ट चर का उपयोग करना होगा ... अजीब तरह का। –

+0

आपकी मदद के लिए धन्यवाद। –

0

आपको उपयोगी दस्तावेज़ीकरण on using sessions out of views मिल सकता है।

+1

मैं इसे देख रहा था, लेकिन, मुझे नहीं पता कि मैं सत्र कुंजी कैसे प्राप्त करूंगा और मुझे यह जानना होगा कि किस प्रकार के सत्र संग्रहण का उपयोग किया जा रहा है। –

+1

AFAIK यह काम नहीं करता है, क्योंकि आपके पास सिग्नल हैंडलर में सत्र-कुंजी नहीं है। – guettli