2013-07-25 3 views
3

У меня есть вызов Ajax, который устанавливает request.user.my_field = valueКак обновить request.user в django?

Когда Аякс успешно, я перезагрузить страницу с location.reload(True) Я ожидаю request.user.my_field в функции просмотра обновляется сейчас, но она имеет старое значение.

Как это исправить?

EDIT

Аякса вызов:

$.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 (который устанавливает запрос. пользователя запрос), не вызывается между вызовом ajax и location.reload()

так umm ???

ответ

3

Сохраните модель перед выходом из вида.

request.user.save() 
+0

Я действительно делаю 'request.user.save()' в первом представлении. – eugene

+0

Я добавил дополнительную информацию. Пожалуйста, взгляните на мое редактирование. – eugene

0

Wow застрелить меня ..

success: был внутри data и просил две страницы подряд.

Смежные вопросы