【发布时间】:2019-05-20 08:49:04
【问题描述】:
如何在没有formset的情况下从多个具有相同字段名称的表单中获取所有值?
这是我的 view.py 文件
...
test = str(request.POST.getlist('testing123[]'))
...
还有html文件
<div class="input-group">
<input type="text" class="form-control" name="testing123[]">
<a href="javascript:void(0);" class="add_button_rip btn btn-warning" title="Add field">+</a>
</div>
用js脚本克隆表单
<script type="text/javascript">
$(document).ready(function(){
var maxField = 100; //Input fields increment limitation
var addButton = $('.add_button_rip'); //Add button selector
var wrapper = $('.field_wrapper_rip'); //Input field wrapper
var fieldHTML = '<div class="spacer-divide"></div><div class="input-group"><input type="text" class="form-control" name="test"><a href="javascript:void(0);" class="remove_button_rip btn btn-warning" title="Add field">-</a></div>'; //New input field html
var x = 1; //Initial field counter is 1
//Once add button is clicked
$(addButton).click(function(){
//Check maximum number of input fields
if(x < maxField){
x++; //Increment field counter
$(wrapper).append(fieldHTML); //Add field html
}
});
//Once remove button is clicked
$(wrapper).on('click', '.remove_button_rip', function(e){
e.preventDefault();
$(this).parent('div').remove(); //Remove field html
x--; //Decrement field counter
});
});
</script>
我试着用这个打印
print (test)
for x in range(len(test)):
print (test[x],end=" ")
结果只是第一个值
对不起我的错误我在这一行有错误的代码
var fieldHTML = '<div class="spacer-divide"></div><div class="input-group"><input type="text" class="form-control" name="test"><a href="javascript:void(0);" class="remove_button_rip btn btn-warning" title="Add field">-</a></div>';
应该是
var fieldHTML = '<div class="spacer-divide"></div><div class="input-group"><input type="text" class="form-control" name="testing123[]"><a href="javascript:void(0);" class="remove_button_rip btn btn-warning" title="Add field">-</a></div>';
【问题讨论】:
-
首先,如果您想要项目列表,为什么要尝试将它们转换为 str ?
-
因为我需要字符串输出
-
好的,但请看我的回答。 Django 的 .getlist() 方法应该返回 python 的列表。您可以遍历此列表,然后将单个项目转换为字符串。