Jquery 使用django动态添加输入字段并将数据保存到数据库
我想用自动递增的id(1,2,3…等)将多个数据保存到数据库中,而不是保存在同一列中。用户可以动态添加输入字段,最后单击submit按钮,以不同的id(自动递增的id)将数据保存到数据库中 我在单击按钮时对添加输入字段执行了HTML和J查询。但我不知道如何使用django将其存储在数据库中。我在view.py文件中没有执行任何存储操作 这是使用HTML和Jquery添加字段的代码:Jquery 使用django动态添加输入字段并将数据保存到数据库,jquery,django,Jquery,Django,我想用自动递增的id(1,2,3…等)将多个数据保存到数据库中,而不是保存在同一列中。用户可以动态添加输入字段,最后单击submit按钮,以不同的id(自动递增的id)将数据保存到数据库中 我在单击按钮时对添加输入字段执行了HTML和J查询。但我不知道如何使用django将其存储在数据库中。我在view.py文件中没有执行任何存储操作 这是使用HTML和Jquery添加字段的代码: <html> <head> <script src="https://ajax.g
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$(function(){
var i =0;
$('#adduser").click(function(){
var AnswerHTML = "";
AnswerHTML ='<div class="form-group" style="border: 1px solid;background-color: #ADD8E6">'
+' <div class="col-xs-4"><input type="text" name="firstname'+i+'"> </input></div>'
+' <div class="col-xs-4"><input type="text" name="age'+i+'"> </input></div>'
+' <div class="col-xs-4"><input type="text" name="relation'+i+'"></input></div>'
+'<i class="icon-trash" style="padding-left:20px; cursor: pointer;"></i></div>';
$('#divQuatationList').append(AnswerHTML);
i++;
$("#totallength").val(i);
});
});
$(document).on("click",".icon-trash",function(e){
$(this).closest('.form-group').remove();
});
</script>
<body>
<div>
<p id='adduser' class='btn btn-info' >ADD</p>
</div>
<form class="form-horizontal row-border" action="{% url "Saveforms" %}" method="post">
<input type="hidden" id="totallength" name="totallength" />
<div id="divQuatationList"></div>
<div class="col-md-12"><input type="submit" id="Submit" class="btn btn-info pull-right" value="SaveData" />
</form>
</body>
</html>
URL
url(r'^Saveforms/$', views.Saveforms, name='Saveforms'),
Views
def Saveforms(request):
lenth = request.POST['totallength']
if request.POST:
i = 0
for index in range(i,int(lenth)):
firstname =""
age =""
relation =""
flag=0
if 'firstname'+str(index) in request.POST:
firstname= request.POST['firstname'+str(index)]
flag = 1
if 'age'+str(index) in request.POST:
age= request.POST['age'+str(index)]
flag = 1
if 'relation'+str(index) in request.POST:
relation= request.POST['relation'+str(index)]
flag = 1
if flag == 1:
UserName.objects.create(firstname=firstname,age=age,relation=relation)
return HttpResponseRedirect("/dynamicform/Manageforms/")
$(函数(){
var i=0;
$('#adduser”)。单击(函数(){
var AnswerHTML=“”;
回答HTML=''
+' '
+' '
+' '
+'';
$(“#divquationlist”).append(AnswerHTML);
i++;
$(“#总长度”).val(i);
});
});
$(文档)。在(“单击“,”.icon垃圾箱”上,函数(e){
$(this).closest('.form group').remove();
});
添加
统一资源定位地址
url(r“^Saveforms/$”,views.Saveforms,name='Saveforms'),
意见
def存储表单(请求):
lenth=request.POST['totallength']
如有要求,请发送:
i=0
对于范围(i,int(lenth))中的索引:
firstname=“”
年龄=“”
relation=“”
标志=0
如果request.POST中的'firstname'+str(索引):
firstname=request.POST['firstname'+str(索引)]
标志=1
如果request.POST中的'age'+str(索引):
年龄=请求.职位['age'+str(索引)]
标志=1
如果request.POST中的“关系”+str(索引):
关系=请求.POST['relation'+str(索引)]
标志=1
如果标志==1:
UserName.objects.create(firstname=firstname,age=age,relation=relation)
返回HttpResponseRedirect(“/dynamicform/Manageforms/”)
Id默认为自动递增字段。您需要预定义用户可以在您的模型中添加哪些文件。不建议将列添加到数据库取决于用户。如果您想从JS发送JSON数据并将其存储在数据库中,我建议您使用django rest framework。数据库中只存储了一行值。我已经更新了一些逻辑。同时使用打印检查要传递多少行