Django не сохраняет сессию в cookies, если я не конкатенирую список

Я пытаюсь создать сессию в django следующим образом, но следующее не приводит к обновлению сессии

def index(request):
  if not request.user.is_authenticated:
    return render(request, "login.html", {"message": None})
  if 'foo' not in request.session:
    request.session["foo"] = {}
  if request.method == 'POST':
    form = NewLineItemForm(request.POST)
    if form.is_valid():
      item = Item.objects.create(name=name)
      request.session["foo"][item.id] = item.name
  context = {
    "foo": request.session['foo'],
    "form": NewLineItemForm()
  }
  
  return render(request, "index.html", context)

Однако, когда я добавляю следующее к другому ключу в сессии, все, включая исходный ключ (foo), обновляется:

def index(request):
  if not request.user.is_authenticated:
    return render(request, "login.html", {"message": None})
  if 'foo' not in request.session:
    request.session["foo"] = {}
  if 'task' not in request.session:
    request.session['task'] = []
  if request.method == 'POST':
    form = NewLineItemForm(request.POST)
    if form.is_valid():
      item = Item.objects.create(name=name)
      request.session["foo"][item.id] = item.name
      request.session["task"] += ['baz']
  context = {
    "foo": request.session['foo'],
    "form": NewLineItemForm()
  }
  
  return render(request, "index.html", context)

Мне интересно, как я могу сохранить то, что задумано в первом блоке, не полагаясь на изменения во втором блоке. Спасибо.

Вернуться на верх