Я создаю свой первый django проект и пытаюсь использовать переменные сеанса вне представления. Во-первых, я получаю некоторые данные из формы. Это отлично работает.
"""views.py"""
request.session['points_to_victory'] = form.cleaned_data['points_to_victory']
request.session['player_amount'] = form.cleaned_data['player_amount']
request.session['double_out'] = form.cleaned_data['double_out']
request.session['players'] = players
request.session['current_player'] = 0
request.session.save()
form.process(request.session.session_key)
print("Output after form.process: " + str(request.session.items()))
Но я вызываю функцию в своем классе формы и пытаюсь добавить туда еще одну запись в моем сеансе. Код в классе формы выглядит следующим образом:
"""forms.py"""
s = Session.objects.get(pk=session_key)
session = s.get_decoded()
session["game"] = 1
print("Output in form.prcocess: " + str(session.items()))
s.save()
Вывод строки командной строки:
> Output in form.prcocess: dict_items([('points_to_victory', 301), ('player_amount', 1), ('double_out', True), ('players', ['Mustermann']), ('current_player', 0), ('game', 1)])
> Output after form.process: dict_items([('points_to_victory', 301), ('player_amount', 1), ('double_out', True), ('players', ['Mustermann']), ('current_player', 0)])
Таким образом, изменения в dict сеанса выполняются, но не сохраняются. Есть ли другой способ сохранить это? И можете ли вы объяснить, почему он не работает?