2016-09-19 47 views
2

使用django 1.8,我正在觀察奇怪的事情。 這裏是我的javascript:django QueryDict只返回列表的最後一個值

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 

爲什麼只給我最後一個值? 我認爲序列化有問題,但我無法弄清楚如何解決這個問題。

+0

試「request.POST。 getlist('form_4606-parents []')' – suhailvs

回答

6

here

這是一個功能,而不是一個錯誤。如果你希望值的列表中的一個關鍵,使用以下命令:

values = request.POST.getlist('key') 

,這應有助於retrieving list items from request.POST in django/python

+0

Wroked很棒,雖然我很困惑,爲什麼。這需要我編寫一個代碼,說明如果key是'parents'那麼val = request.POST.getlist(key)否則val = request.POST.getl(key) – max

+0

@max(和其他) - 從鏈接的票證 - 「背後的原因是一個API方法應該一致地返回一個字符串或一個列表,但從來都不是這樣。Web應用程序中的一個常見情況是將一個表單鍵與單個值相關聯,所以這就是[]語法如果你打算多次使用一個鍵作爲單個值,那麼getlist()就會出現在你的場合(比如你的)。「 – Sayse

1

可以使用的GetList方法

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