【问题标题】:Django multiple input field values with same nameDjango具有相同名称的多个输入字段值
【发布时间】:2017-04-08 15:18:45
【问题描述】:

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

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

我该如何处理这一切?目前我正在使用<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']

【问题讨论】:

  • 这个很不清楚。复选框和单选按钮应该具有多个具有相同输入名称的选项。你遇到了什么确切的问题?为什么不使用 Django 表单 API?
  • 如果有很多问题,我如何动态处理 Django 表单?

标签: python django forms


【解决方案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

【讨论】:

  • 以前我也这样做过......但只有一次成功保存的答案......
猜你喜欢
  • 2010-10-03
  • 1970-01-01
  • 1970-01-01
  • 2017-03-03
  • 2011-11-20
  • 2017-11-06
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
相关资源
最近更新 更多