2010-10-11 20 views
13

Estoy intentando crear un carrito de compras relativamente simple en Django. Estoy almacenando el carrito en request.session ['cart']. Por lo tanto, tendré que acceder a los datos de esta sesión cuando se agregue algo. Sin embargo, si la sesión no está configurada, no puedo acceder sin recibir un error. ¿Hay alguna forma de verificar si se establece una sesión, para que pueda establecerse si no existe?Comprobar si la clave de sesión está establecida en Django

Respuesta

35

que suponer que usted quiere comprobar si una clave se encuentra en sesión, no si una sesiónse establece (no sé lo que éste significa). Si es así:

Usted puede hacer:

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

En su caso:

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

EDITAR: cambió el fragmento de código para utilizar en lugar de key not innot key in. Gracias @katrielalex.

+3

El La forma pythonic sería 'if key not in request.session'. – katrielalex

11

Puede utilizar el -method get en el diccionario de la sesión, no será un error si no existe la clave, pero ninguno devolver como un valor por defecto o el valor por defecto personalizada:

cart = request.session.get('cart') 
cart = request.session.get('cart', 'no cart') 
Cuestiones relacionadas