Django异常类型:MultiValueDictKeyError

时间:2014-03-31 11:49:25

标签: django

我正在使用Django 1.6。我遇到了错误

**Exception Type**: MultiValueDictKeyError
**Exception Value**:"'chat_room_id'"

在上面提到的代码部分。任何人都可以帮我解决这个问题吗?

@login_required
def join(request):
    '''
    Expects the following POST parameters:
    chat_room_id
    message
    '''
    p = request.POST
    r = Room.objects.get(id=int(p['chat_room_id']))
    r.join(request.user)
    return HttpResponse('')

1 个答案:

答案 0 :(得分:0)

chat_room_id似乎不在p中。 request.POSTMultiValueDict。它有一个.get()方法来获取值。使用默认值,以便在没有键值时,可以使用默认值。例如。

@login_required
def join(request):
    '''
    Expects the following POST parameters:
    chat_room_id
    message
    '''
    p = request.POST
    room_id = p.get('chat_room_id', False)
    # ------------------------------^ Returns False if `chat_room_id` is not in `p`
    if room_id:
        r = Room.objects.get(id=int(room_id))
        r.join(request.user)
    else:
        # throw error
    return HttpResponse('')