Подтвердить что ты не робот

Django QueryDict возвращает только последнее значение списка

Используя django 1.8, я наблюдаю что-то странное. Вот мой javascript:

function form_submit(){
  var form = $('#form1_id');
  request = $.post($(this).attr('action'), form.serialize(), function(response){
     if(response.indexOf('Success') >= 0){
        alert(response);
     }
  },'text')
  .fail(function() {
    alert("Failed to save!");
  });
  return false;
}

и вот параметры, отображаемые в views.py

print request.POST
<QueryDict: {u'form_4606-name': [u''], u'form_4606-parents': [u'4603', u'2231', u'2234']}>

но я не могу извлечь родителей:

print request.POST['form_4606-parents']
2234

Почему это просто дает мне последнее значение? Я думаю, что что-то не так с сериализацией, но я просто не могу понять, как это решить.

4b9b3361

Ответ 2

def querydict_to_dict(query_dict):
    """
    Converts a QueryDict object to a dictionary.
    Unlike Django QueryDict.dict() function, this keeps lists that 
    have two or more items as lists.
    """
    data = {}
    for key in query_dict.keys():
        v = query_dict.getlist(key)
        if len(v) == 1:
            v = v[0]
        data[key] = v
    return data

Ответ 3

Вы можете использовать метод getlist

data = request.POST.getlist('form_4606-parentspass_id','')