2010-10-11 13 views
13

में सेट है या नहीं, मैं Django में अपेक्षाकृत सरल शॉपिंग कार्ट बनाने का प्रयास कर रहा हूं। मैं request.session ['कार्ट'] में गाड़ी संग्रहित कर रहा हूं। इसलिए, जब भी इसमें कुछ जोड़ा जाता है तो मुझे इस सत्र में डेटा तक पहुंचने की आवश्यकता होगी। हालांकि, यदि सत्र पहले से सेट नहीं है, तो मैं त्रुटि प्राप्त किए बिना इसका उपयोग नहीं कर सकता। क्या कोई सत्र निर्धारित करने के लिए वैसे भी है, ताकि यह सेट किया जा सके यदि यह अस्तित्व में नहीं है?जांचें कि सत्र कुंजी Django

उत्तर

35

मुझे लगता है कि आप अगर एक कुंजी, सत्र में सेट किया गया है नहीं एक सत्र सेट कर दिया जाता जाँच करना चाहते हैं (क्या उत्तरार्द्ध साधन पता नहीं है)। यदि ऐसा है तो:

आप कर सकते हैं:

if key not in request.session: 
    # Set it. 

आपके मामले में:

if 'cart' not in request.session: 
    # Set it. 

संपादित: key not in बजाय not key in उपयोग करने के लिए कोड का टुकड़ा बदल दिया है। धन्यवाद @ katrielalex।

+3

pythonic रास्ता 'if key.session' में नहीं होगा। – katrielalex

11

आप सत्र शब्दकोश पर get -method उपयोग करते हैं, यह एक त्रुटि फेंक नहीं होगा सकता है अगर कुंजी मौजूद नहीं है, लेकिन एक डिफ़ॉल्ट मान या अपने कस्टम डिफ़ॉल्ट मान के रूप में वापसी से कोई भी:

cart = request.session.get('cart') 
cart = request.session.get('cart', 'no cart') 
संबंधित मुद्दे