无法找出 Django KeyError 的原因
Unable to figure out the cause of a 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()
这清除了我的 table 但似乎仍未解决此错误。
我什至尝试在 Heroku 中托管它并从不同的设备访问该网站,但仍然出现此错误。我能做些什么吗?
为了以防万一这是我的 views.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)
如有任何帮助,我们将不胜感激。
谢谢!
如果 dictionary/collection
中不存在该键,则使用方括号语法查找键将引发 KeyError
if not request.session['order1']:
应该是
if not request.session.get('order1'):
使用try/except 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()
这清除了我的 table 但似乎仍未解决此错误。 我什至尝试在 Heroku 中托管它并从不同的设备访问该网站,但仍然出现此错误。我能做些什么吗?
为了以防万一这是我的 views.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)
如有任何帮助,我们将不胜感激。 谢谢!
如果 dictionary/collection
中不存在该键,则使用方括号语法查找键将引发KeyError
if not request.session['order1']:
应该是
if not request.session.get('order1'):
使用try/except KeyError 也可以...