Ответ 1
От здесь
Это функция, а не ошибка. Если вам нужен список значений для ключа, используйте следующее:
values = request.POST.getlist('key')
И это должно помочь извлекать элементы списка из request.POST в django/python
Используя 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
Почему это просто дает мне последнее значение? Я думаю, что что-то не так с сериализацией, но я просто не могу понять, как это решить.
От здесь
Это функция, а не ошибка. Если вам нужен список значений для ключа, используйте следующее:
values = request.POST.getlist('key')
И это должно помочь извлекать элементы списка из request.POST в django/python
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
Вы можете использовать метод getlist
data = request.POST.getlist('form_4606-parentspass_id','')