2011-05-06 17 views
12

Mi sono imbattuto in Django Request.Session dove, so come impostarlo e testarlo per un valore specifico .Test di una variabile di sessione in django

request.session['name'] = "dummy" 

e da qualche parte ho check

if request.session['name'] == "dummy" : 
    #do something 

Ma, ora devo verificare se la variabile di sessione è stato nemmeno impostato in primo luogo? Voglio dire come posso verificare se esiste un valore nello Request.Session['name'] Is set?

Per favore qualcuno può contattarmi, c'è un modo per controllarlo?

Grazie in anticipo.

+2

Python è case-sensitive. Django non ha 'Request' o' Session', ha 'request.session'. –

risposta

10

get farà tutto il lavoro per voi. Controllare se la chiave esiste, se non allora il valore è None

if request.session.get('name', None) == "dummy": 
    print 'name is = dummy' 
+1

request.session.get ('name') dovrebbe essere sufficiente – Jerzyk

+0

Esatto, era una dimostrazione per i valori predefiniti – programmersbook

19

trattarlo come un dizionario Python:

if 'name' in request.session: 
    print request.session['name'] 

Come usare le sessioni: http://docs.djangoproject.com/en/dev/topics/http/sessions/

+0

Questa è una soluzione molto più pulita, rispetto alla risposta accettata. – tokyovariable

+0

Domanda correlata. Se avessi un altro dizionario nella variabile di sessione, ad es. {'b': {'z': 100}}, avrò bisogno di usare più istruzioni if? Supponiamo che le variabili non possano esistere (quindi nell'esempio precedente, 'b' e 'z' potrebbero non esistere) – wasabigeek