Имя двумерной переменной в сеансах Django

Я пытаюсь создать 2D имя переменной в сессиях, как в примере Django docs на этой странице:

В нем говорится:

# Gotcha: Session is NOT modified, because this alters
# request.session['foo'] instead of request.session.
request.session['foo']['bar'] = 'baz'

но когда я использую этот код, я получаю: KeyError: 'foo'

если я сначала создам 'foo' с помощью request.session.get('foo', 'baz'), то request.session['foo']['bar'] = 'bam'

я все еще получаю: KeyError: 'foo'

Почему я не могу установить 2d переменную как в примере из django doc? Спасибо за любую помощь.

request.session.get('foo', 'baz') ничего не создают. Вы имеете в виду:

request.session.setdefault('foo', 'baz')

Если задать 'baz' в request.session['foo'] type(request.session['foo']) является строкой Вы не можете сделать String['bar'], поэтому request.session['foo']['bar'] = 'bam' не работает.

Что вы действительно хотите сделать? Зачем вам нужен 2d-параметр?

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