Django具有相同名称的多个输入字段值

时间:2016-11-24 10:45:38

标签: python django forms

我需要一些帮助。如何使用具有相同名称的多个输入字段值来处理表单?并且只有一次查看,这实际上是基本问题形成..另一个想法我从https://stackoverflow.com/a/478406/6396981找到了这个方法:

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 个答案:

答案 0 :(得分:2)

如果我理解你,你需要实施多项选择? 然后你可以在你的模板中做到这一点:

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

Andi认为:

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