问题描述
我试图从同一个表单字段获取所有输入,该表单字段在HTML中显示两次,因为它处于循环状态(如本例所示)。有办法吗?下面是代码:
HTML
def home(request):
nums = [[3,"",2,7,5,6,1,4,9],[1,3,9,8],[6,8,5],[2,7],[4,2],[7,6],[5,4],[8,1],[9,3]]
context = {'nums': nums}
if request.method == "POST":
form = SForm(request.POST)
context['form'] = form
if form.is_valid():
num = form.cleaned_data.get('num')
else:
form = SForm()
context['form'] = form
context['range'] = range(9)
return render(request,'s/home.html',context)
Forms.py
class SForm(forms.Form):
num = forms.IntegerField(min_value=0,max_value=9,label=False)
HTML.py
{% block content %}
<form method="POST" name="s_form">
{% csrf_token %}
{% for row in nums %}
<tr>
{% for col in row %}
{% if forloop.counter0|divisibleby:"9" %}
<br>
{% endif %}
{% if col != "" %}
<span id="{{ forloop.parentloop.counter0 }} - {{ forloop.counter0 }}">{{ col }}</span>
{% else %}
<span id="{{ forloop.parentloop.counter0 }} - {{ forloop.counter0 }}">{{ form }}</span>
{% endif %}
{% endfor %}
</tr>
{% endfor %}
<div class="container"><button class="btn btn-dark" type="submit" name="button">Submit</button></div>
</form>
{{ num }}
{% endblock %}
但是,我看到的问题是该表单被视为一个表单。输入完输入后,两个整数字段将返回相同的值。(以下屏幕截图)
任何人都知道如何从同一个字段中获得两个输入值。或者是否有使用多个字段的方法?提前非常感谢您!
解决方法
您可以将“前缀” arg用于表单实例
选中此answer