Django-fr

Forum

#1 13-01-2012 18:24:01

pioupiou
Membre
Inscription : 13-01-2012
Messages : 3

une session dont les clés disparaissent

Hello la communauté ! Un petit nouveau vient d'arriver !

je suis sur un problème depuis 6 heures que je n'arrive pas à résoudre. Je tiens à signaler que je suis un gros noob dans le developpement web et que j'ai commencé à coder avec django il y a un petit mois, donc priere de ne pas me taper dessus big_smile
je vous remercie egalement de prendre la peine de regarder lire et répondre a mon post

aujourd'hui j'ai voulu mettre en place le systeme de cache et de session dans un projet professionnel. Les test sur le cache marchaient bien alors je suis passé à la mise en place des sessions. Et là le drame s'est produit.

voici mon probleme:
Je crée une clé dans request.session. Apres avoir appelé une autre fonction avec request en parametre j'arrive à récupérer la clé.
Ensuite j'arrive sur index html. Je fais alors une requete ajax vers une autre view pour recuperer des donnees. Pour les récupérer j'ai besoin de la valeur contenue dans la clé. Sauf que celle ci n'existe plus. T_T

voici le code:

def check(request):
    if request.method == 'POST':
        RequestContext(request)
        try:
            m = MsGnlMember.objects.get(mbr_nom=request.POST['username'])
        except (ObjectDoesNotExist):
            return render_to_response('login.html', {'BAD': True, 'username' : 'Unknown User'})
        if m.mbr_mdp == request.POST['mdp']:
            request.session['MBR_INSTANCE'] = m                                                                         <<= c'est la que je set la clé
            return studio(request)
        else:
            return render_to_response('login.html', {'BAD': True, 'mdp' : 'Bad Password'})
    return render_to_response('login.html', {'Bad' : True })     

def studio(request):
    username = request.session["MBR_INSTANCE"].mbr_nom
    request.session.modified = True #ne regle pas mon bug
    getNote = GetNoteForm()
    saveNote = SaveNoteForm()
    search = SearchForm()
    return render_to_response('index.html', {'FORM_GETNOTE' : getNote,
                                             'FORM_SAVENOTE' : saveNote,
                                             'FORM_SEARCH' : search,
                                             'USERNAME' : username},                                                      <<= fonctionne = je vois le resultat sur index.html
                                            context_instance=RequestContext(request))


une fois que index.html est chargé je fais une requete AJAX avec jQuery:

def arbo_get_acts(request):
    if request.method == 'POST' and request.is_ajax():
        if "MBR_INSTANCE" in request.session:                                                                         <<= je passe pas dans ce if, la clé a disparu
            acts = MsWriAct.objects.filter(act_mbr=request.session['MBR_INSTANCE'])                           
            acts_serialised = serializers.serialize('json', acts)
            return HttpResponse(acts_serialised, 'application/json')
        else:     
            acts_serialised = {}           
            return HttpResponse(acts_serialised, 'application/json')

d'avance merci!

Dernière modification par pioupiou (13-01-2012 18:42:59)

Hors ligne

#2 13-01-2012 18:48:33

quinode
Membre
Lieu : Auvergne
Inscription : 14-10-2010
Messages : 89
Site Web

Re : une session dont les clés disparaissent

il faudrait que tu regarde avec Firebug ou LiveHTTP headers  si ta requete ajax contient bien le cookie de session

Hors ligne

#3 13-01-2012 19:01:50

pioupiou
Membre
Inscription : 13-01-2012
Messages : 3

Re : une session dont les clés disparaissent

Merci de me répondre smile
Comme quoi je ne connais meme pas les outils pour développer:

J'ai ouvert firebug et voila ce que j'ai dans la console a la ligne http://localhost:8000/index/arbo_get_acts/

Content-Length    0
Content-Type    application/json
Date    Fri, 13 Jan 2012 17:54:27 GMT
Server    WSGIServer/0.1 Python/2.7.2
Set-Cookie    sessionid=c531a3b804eb2c4d6bf591e826ac387d; expires=Fri, 27-Jan-2012 17:54:27 GMT; Max-Age=1209600; Path=/
Vary    Cookie
Requête
Accept    application/json, text/javascript, */*; q=0.01
Accept-Charset    ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Encoding    gzip, deflate
Accept-Language    fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Connection    keep-alive
Cookie    csrftoken=e6a0d35a32bcf55c0a0df7a3b1ac7585; sessionid=c531a3b804eb2c4d6bf591e826ac387d
Host    localhost:8000
Referer    http://localhost:8000/index/check/
User-Agent    Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0.1) Gecko/20100101 Firefox/8.0.1
X-CSRFToken    e6a0d35a32bcf55c0a0df7a3b1ac7585
X-Requested-With    XMLHttpRequest

il y a quelque chose qui devrait m'alerter? (j'y comprends rien, je vois une requete et une reponse qui semble avoir marché

Dernière modification par pioupiou (13-01-2012 19:02:11)

Hors ligne

#4 18-01-2012 17:32:43

pioupiou
Membre
Inscription : 13-01-2012
Messages : 3

Re : une session dont les clés disparaissent

ok alors j'ai testé chez moi et mon code marche très bien.
Donc tout confiant je reviens mercredi au boulot. Et la paf... ca ne marche pas.
Je deviens fou.
Puis là ce soir ca a fait tilt. Chez moi je suis sur linux.
Au boulot sur windows.
Premiere recherche google:
https://code.djangoproject.com/ticket/9084

T_T probleme resolu. Comment perdre deux jours de dev

Hors ligne

Pied de page des forums