我试图让request.POST.get在没有提供参数的情况下工作。我的理解是should在这种情况下返回None
。但是,如果我使用了request.POST['key']
:MultiValueDictKeyError: "'key'"
,它会抛出同样的错误。
代码:
def myRoute(request):
if request.method == 'POST':
data = request.POST.get('key')
我还尝试将try
/ except
与request.POST['key']
一起使用,但我遇到了同样的问题。我怀疑这可能只是因为我对Django和Python的不熟悉而引起的,但任何建议都会受到赞赏。
我正在使用Django 1.6.5 / Python 2.7。
答案 0 :(得分:1)
您可以为get方法提供默认值,如下所示:
data = request.POST.get('key', None)
如果没有值,这将把数据设置为None。或者您可以自己检查价值:
if 'key' in request.POST:
data = request.POST['key']
else:
data = None
答案 1 :(得分:0)
尝试这样写:
def myRoute(request):
if request.POST:
data = request.POST.get('key', 'SomeDefaultValue')
使用.get
方法不应该抛出关键错误;所以如果它仍然存在,请检查您的代码,因为问题可能在其他地方。