django请求不包含密钥

时间:2012-01-13 14:41:15

标签: ajax django session key

首先,我要感谢您观看我的帖子! 我已经使用django两个月来进行企业项目。我是网络发展和django开发中的一种法国菜鸟:D

这是我的问题:在一个视图中我在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 个答案:

答案 0 :(得分:0)

当您对会话进行更改时,还需要在返回响应之前设置request.session.modified = True

更多信息: