无法找出Django KeyError的原因



我正在尝试创建一个电子商务网站,并使用Django会话将商品存储在购物车中,起初,一切都很好,直到我决定做一些愚蠢的事情,并在chrome中更改了检查中的会话令牌。从那时起,我被抛出了一个KeyError

Django Version: 3.0.8
Exception Type: KeyError
Exception Value: 'order1'

然后我在我的终端中运行了以下代码。。。

from django.contrib.sessions.models import Session
Session.objects.all().delete()

这清理了我的桌子,但似乎仍然没有解决这个错误。我甚至试图在Heroku中托管它,并从另一个设备访问网站,但仍然抛出了这个错误。对此我能做些什么吗?

以防万一,这是我的观点。py…

def shop(request):
if not request.session['order1']:
request.session['order1'] = []

if request.method == "POST":
quantity = int(request.POST.get('quantity'))
name = request.POST.get('name')
if quantity >= 1:
new_order = {"quantity":quantity, "name":name}
request.session['order1'].append(new_order)

# request.session['order'] = order
context = {
"check":request.session['order1'],
}
else:
messages.warning(request, "You have entered an invalid quantity")
context={}
else:
context={}
return render(request, "store/shop.html", context)

如有任何帮助,我们将不胜感激。谢谢

如果字典/集合中不存在密钥,则使用方括号语法查找密钥将引发KeyError

if not request.session['order1']:

应该是

if not request.session.get('order1'):

使用try/except KeyError也可以。。。

最新更新