Доступ к ключам диктов (или диктовок), которые не существуют, повышает KeyError
.
Вы можете явно проверить ключ:
if 'instances' in request.session:
# ...
или вы можете использовать метод .get()
, который возвращает значение по умолчанию (None
по умолчанию), если ключ не существует - это также удобно, поскольку ложные значения, такие как 0, '', False, [] и т.д. пройти тест:
if request.session.get('instances'):
del request.session['instances']
... но для удаления просто используйте .pop()
по умолчанию и без if:
request.session.pop('instances', None) # Remove `instances` if it's there, do nothing otherwise.