2016-11-24 194 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

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

相关问题