如何更新django中的request.user?

时间:2013-07-25 05:09:57

标签: django request

我有一个设置的ajax调用 request.user.my_field = value

当ajax成功时,我使用location.reload(True)重新加载页面 我希望视图函数中的request.user.my_field现在更新,但它具有旧值。

我该如何解决这个问题?

修改

ajax电话:

$.ajax({
    type: 'POST',
    url: '{% url editor_select %}',
    data: {'editor_type':$(this).val(),
           success: function(response_data) {                                                                                                                                                                                                                   
               location.reload(true);                                                                                                                                                                                                                           
           }                                                                                                                                                                                                                                                    
          }                                                                                                                                                                                                                                                     
});     

第一个观点:

def editor_select(request):
    """                                                                                                                                                                                                                                                                         
    called when user changes editor type to post question/answer                                                                                                                                                                                                                
    """

    editor_type = CharField().clean(request.POST['editor_type'])
    request.user.editor_type = editor_type
    request.user.save()

第二种观点:

def second_view(request):
    print 'ask, editor_type:', request.user.editor_type

我发现AuthenticationMiddleware(将request.user设置为request),不会在ajax调用和location.reload()之间调用

所以嗯???

2 个答案:

答案 0 :(得分:3)

退出视图前保存模型。

request.user.save()

答案 1 :(得分:0)

哇拍我......

success:位于data内,并且连续请求了两页。