2012-01-13 123 views
1

首先,我要感謝您收看我的帖子! 我爲企業項目使用了Django兩個月。而我是一種法國noob在網絡developpement和django發展:Ddjango請求不包含密鑰

這裏是我的問題:在一個視圖im設置一個鍵在request.session,但後render_to_response和ajax查詢這個鍵只是消失:(

這裏是我設置的關鍵

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']: 
Here ===> request.session['MBR_INSTANCE'] = m 

     return index(request) 


def index(request): 
username = request.session["MBR_INSTANCE"].mbr_nom 
request.session.modified = True # does not fix my problem 
getNote = GetNoteForm() 
saveNote = SaveNoteForm() 
search = SearchForm() 
return render_to_response('index.html', {'FORM_GETNOTE' : getNote, 
             'FORM_SAVENOTE' : saveNote, 
             'FORM_SEARCH' : search, 
             'USERNAME' : username}, 
          context_instance=RequestContext(request)) 

此代碼工作得很好(用戶名是在根據查詢結果index.html的改變),但功能時,即時通訊頁面的index.html即時通訊啓動ajax查詢如下:

def arbo_get_acts(request): 
if request.method == 'POST' and request.is_ajax(): 
    if "MBR_INSTANCE" in request.session: 
     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') 

,我從來沒有在進入我的if語句:'(SNIF SNIF 所以請給我解釋一下什麼即時做錯了還是什麼我不明白

編輯:好吧大家,昨天我在家裏測試我的代碼和它工作得很好。在工作中,它繼續失敗。經過漫長的旅程和辛苦的勞動,我發現。當我在想 「爲什麼它在家裏工作而不在工作時」它傾斜了。在家我使用Linux,在工作窗口。 ........ 首款谷歌搜索: 這裏是我的恥辱:https://code.djangoproject.com/ticket/9084 基於文件的會話沒有任何數據存儲在Windows

T_T如何發展鬆動兩天

+1

檢查是否進入arbo_get_acts函數。 這是ajax,所以你無法直接看到服務器響應 - 在Firebug中檢查它。這可能是一些CSRF驗證問題。 – disorder 2012-01-13 14:50:38

+0

感謝名單這裏回答我是輸出: POST HTTP://本地主機:8000 /指數/ arbo_get_acts/ \t 200 OK \t \t 175ms之間\t 的jQuery .... min.js(LIGNE 18) 恩têtesPost REPONSE 的Content-Length 內容類型\t應用/ JSON 日期\t星期五,2012 14點59分54秒GMT 服務器\t WSGIServer/0.1的Python/2.7 1月13日2 Set-Cookie \t sessionid = c531a3b804eb2c4d6bf591e826ac387d; expires = Fri,2012年01月27日14:59:54 GMT;最大年齡= 1209600; Path =/ Vary \t Cookie – hdcos 2012-01-13 15:02:52

+0

嗯! HttpResponse應該返回任何內容不是嗎? 可能'request.is_ajax()'返回False?把一些打印到調試請求和request.session可能是。我從來沒有在django中直接使用會話 - 所以如果情況屬實,我無法幫助你。 – disorder 2012-01-13 18:45:08

回答

0

編輯:好吧大家,昨天我測試我的代碼在家裏,它工作得很好。在工作中,它繼續失敗。經過漫長的旅程和辛苦的勞動,我發現。當我想到「爲什麼它在家中而不是在工作中」時,它發生了傾斜。在家我使用Linux,在工作窗口。 ........首先谷歌搜索:這裏是我的恥辱:https://code.djangoproject.com/ticket/9084基於文件的會話沒有任何數據存儲在Windows

T_T如何發展鬆動兩天