我不确定我是否完全以错误的方式进行此操作,但在我的html模板中,我有一个for循环,我想要呈现多个表单,以及一个提交按钮以提交所有表单中的数据:
{% for i in Attribute_list %}
<form action="/Project/create/" method=post>{% csrf_token %}
{{ i }}:
<input type=text name={{ i }}><br>
<hr>
{% endfor %}
<input type=submit>
这个问题是它只提交最后一个表格。
我遇到的另一个问题是从视图中恢复数据。由于我将表单命名为变量“i”,我不知道如何在我的views.py中“获取”这些数据:
def create_config(request):
if request.method == 'POST':
data_list = []
for data in request.POST.getlist():
data_list.append(data)
答案 0 :(得分:0)
<form action="/Project/create/" method="post">
{% csrf_token %}
{% for i in Attribute_list %}
{{ i }}: <input type="text" name="{{ i }}"><br>
<hr>
{% endfor %}
<input type="submit">
</form>
正如我所理解的那样,无论你创建了多少表单,我们只会创建一个POST
请求。
在oyur示例中,HTML无效,因此它可以在不同的浏览器中以不同的方式运行。但是,一旦你没有关闭form
,应该提交最后一个。
至于第二部分
def create_config(request):
if request.method == 'POST':
data_list = []
for data in request.POST.getlist():
data_list.append(data)
我认为你应该使用你的Attribute_list
。或者你可以迭代所有获得的'POST'变量。
def create_config(request):
if request.method == 'POST':
data_list = []
for key in request.POST:
data_list.append(request.POST[key]) # or .extend(request.POST.getlist(key)