使用request.POST.get时出现键错误

时间:2015-02-12 23:22:49

标签: python django

我试图让request.POST.get在没有提供参数的情况下工作。我的理解是should在这种情况下返回None。但是,如果我使用了request.POST['key']MultiValueDictKeyError: "'key'",它会抛出同样的错误。

代码:

def myRoute(request):
    if request.method == 'POST':
        data = request.POST.get('key')

我还尝试将try / exceptrequest.POST['key']一起使用,但我遇到了同样的问题。我怀疑这可能只是因为我对Django和Python的不熟悉而引起的,但任何建议都会受到赞赏。

我正在使用Django 1.6.5 / Python 2.7。

2 个答案:

答案 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方法不应该抛出关键错误;所以如果它仍然存在,请检查您的代码,因为问题可能在其他地方。