2011-05-06 18 views
12

Natknąłem się na Django Request.Session, gdzie, wiem, jak ustawić i przetestować dla wartości specyficzne.Testowanie zmiennej sesji w django

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

i gdzieś sprawdzasz

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

Ale teraz muszę sprawdzić, czy zmienna sesja została jeszcze ustawiona w pierwszej kolejności? Mam na myśli, jak mogę sprawdzić, czy istnieje wartość w Request.Session['name'] Is set?

Proszę, czy ktoś może do mnie zadzwonić, czy istnieje sposób, aby to sprawdzić?

Z góry dziękuję.

+2

W języku Python rozróżniana jest wielkość liter. Django nie ma 'Request' ani' Session', ma 'request.session'. –

Odpowiedz

10

get zrobi wszystko za Ciebie. Sprawdź, czy klucz istnieje, jeśli nie, wówczas wartość jest równa None

+1

request.session.get ("nazwa") powinno wystarczyć – Jerzyk

+0

To prawda, była demonstracja dla wartości domyślnych – programmersbook

19

traktować go jako słownika Python:

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

Jak używać sesje: http://docs.djangoproject.com/en/dev/topics/http/sessions/

+0

To jest znacznie czystsze rozwiązanie, w porównaniu do zaakceptowanej odpowiedzi. – tokyovariable

+0

Powiązane pytanie. Gdybym miał inny słownik w zmiennej sesji, np. {'b': {'z': 100}}, czy będę musiał użyć wielu instrukcji if? Załóżmy, że zmienne mogą nie istnieć (więc w poprzednim przykładzie "b" i "z" mogą nie istnieć) – wasabigeek