6

設定する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()

2 番目のビュー:

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

AuthenticationMiddleware (request.user を request に設定する) が、ajax 呼び出しと location.reload() の間に呼び出されないことがわかりました。

ええと?

4

2 に答える 2

4

ビューを終了する前にモデルを保存します。

request.user.save()
于 2013-07-25T05:12:14.590 に答える