2016-11-24 241 views
3

我需要一些幫助。我如何處理帶有多個輸入字段值並具有相同名稱的表單?只有一次認爲,這實際上是基本問題形成..另一個想法,我發現這個方法從https://stackoverflow.com/a/478406/6396981Django具有相同名稱的多個輸入字段值

relations = request.POST.getlist('relations') 

django questions form

如何處理這一切?目前我正在用<input type="radio"...這樣做,但當然如果它一次具有相同的名字,它就無法工作。但是,如果使用:<input type="checkbox"...,答案可以檢查比1更一度質疑......

也許是這樣的:

<input type="radio" name="answer-{{ question.id }}"> 

我怎樣才能得到這一切的看法?

解決:

在我的測試:

{% for question in questions %} 
    <input type="hidden" name="question" value="{{ question.id }}/> 

    {% for answer in question.get_answers %} 
     <input type="radio" name="answer-{{ question.id }}" value={{ answer.score }}> 
    {% endfor %} 
{% endfor %} 

views.py

questions = request.POST.getlist('question') 
answers = [request.POST['answer-{}'.format(q)] for q in questions] 

而且它的結果:

['20', '19', '16', '13', '11', '10', '9', '8', '1'] 
['5', '2', '3', '4', '1', '4', '4', '2', '2'] 
+1

這是非常不清楚。複選框和單選按鈕*應該*具有多個具有相同輸入名稱的選項。你遇到了什麼確切的問題?爲什麼你不使用Django表單API? –

+0

如果有很多問題,我可以如何使用Django動態表單進行操作? –

回答

1

如果我理解你的權利,你需要實現多項選擇? 然後你就可以在你的模板做這:

{% for answer in answers %} 
    <input type="checkbox" name="answer" id="answer{{ forloop.counter }}" value="{{ answer.id }}"> 
{% endif %} 

安迪鑑於:

answer = request.POST.getlist('answer') 
for el in answer: 
    pass 
+0

以前我在做同樣的事情..但只有一次成功保存的答案... –

相關問題