2012-03-20 8 views
12

मेरे पास दो विचार हैं।एक बार उपयोग किए जाने के बाद मैं Django में सत्र कुंजी कैसे हटा सकता हूं?

व्यू 1 सत्र कुंजी के माध्यम से देखने के लिए एक त्रुटि संदेश पास करता है।

व्यू 2 के बाद कुंजी को कैसे हटाया जाए? मुझे केवल एक बार इसकी आवश्यकता है: view1 से view2 पर रीडायरेक्ट करें। मुझे अपने वेबपृष्ठ को रीफ्रेश करने के बाद दिखाने के लिए उस संदेश की आवश्यकता नहीं है। मुझे नहीं लगता कि return

मैं एक समाप्ति टाइमस्टैम्प सेट करने के बारे में सोच रहा था, लेकिन मुझे यह सुनिश्चित करने की ज़रूरत है कि यह कम से कम 10-20 सेकंड के लिए मौजूद है, यदि एप्लिकेशन वास्तव में इतना लंबा करता है तो पाइथन निष्पादित करना जारी रखेगा लोड (हम Django के साथ कुछ सर्वर सामान करते हैं)? तो समय वादा नहीं है।

धन्यवाद।

उत्तर

41

आप किसी भी अन्य शब्दकोश की तरह सत्र से कुंजी हटा सकते हैं।

del request.session['your key'] 

आपको अपनी कुछ सेटिंग्स के आधार पर सहेजने के लिए संशोधित सत्र को चिह्नित करने की आवश्यकता हो सकती है।

request.session.modified = True 
+2

क्षमा करें। मैंने पूरी चीज को इतना जटिल बना दिया। मैं इसे स्थानीय var में सहेजता हूं, और यह हो गया है। बस इसे हटा दें। धन्यवाद। मैं बहुत ज्यादा सोच रहा हूँ। – CppLearner

+1

यदि आप कुंजी के साथ सीधे जुड़े कुंजी को 'del'' करते हैं, और 'request.session [' parent_key '] [' child ']' जैसे नेस्टेड नहीं हैं, तो 'request.session.modified = True सेट करने की आवश्यकता नहीं है ' –

8

आप सत्र से कुंजी भी पॉप कर सकते हैं। आप एक चर के लिए कुंजी सेट कर सकते हैं और एक ही समय में इसे से छुटकारा पा सकते हैं:

key_variable = request.session.pop('your key') 
+0

जो 'get' – Vassilis

+0

जैसे डिफ़ॉल्ट मान भी ले सकता है क्या इसे बाद में' request.session.modified = True' की आवश्यकता है, या नहीं? –

+0

@HassanBaig नहीं इस मामले में 'request.session.modified = True' सेट करने की आवश्यकता नहीं है। –

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