所以我想创建一个包含3个元素的Education部分的成员表单:
Academic_Background的外国钥匙(拥有高中,BC学位,硕士学位等),
Charfield - 学校名称
Charfield - 研究领域
做一两个问题没问题......但是如何创建几个“教育”字段(通过添加“添加另一个”按钮并使用JS& Jquery向用户显示新的教育。
我应该在模型和表格中加入什么?以及如何将其保存在数据库中?
这似乎可能发生在某人之前,但我无法找到解决方案......
请帮忙!
由于
答案 0 :(得分:0)
我没有使用django表单这样做..只需使用html表单上传多个用户希望的数量..
这是我的template.html文件,它具有正常形式,最初没有任何输入文件字段
js方法在单击“添加新项目”时向表单添加新的输入文件字段href
<form action="{{request.path}}" method="post" enctype="multipart/form-data" id="upload_form">
{%csrf_token%}
<input type="text" name="name" id="name" value="{{request.POST.name}}" placeholder="Person Name"/>
<input type="text" name="categorie" id="categorie" value="{{request.POST.categorie}}" placeholder="Categorie"/>
<div class="file_inputs" id="file_inputs">
<!-- <-- field where im adding multiple files initially empty -->
</div>
<input type="submit" value="Upload">
</form>
<!-- link to add new file input box when clicked on it -->
<a href="#" onClick="addformelement()" >add new item</a>
<script type="text/javascript">
// method to add an file input box when clicked on add new item link
function addformelement(){
a = document.getElementById('file_inputs')
divx=document.createElement('div')
divx.class='file_inputs'
x=document.createElement('input');
x.type='file';
x.name='docfile';
divx.appendChild(x);
a.appendChild(divx) ;
}
</script>
在视图中我做了这个
if request.method == 'POST':
name_instance = get_name_instance(request)
if(name_instance == -1):
return HttpResponse("Error - Check Server logs")
for f in request.FILES.getlist('docfile'):
# do your logic for each file f
# as f.name to get filename ...
我的所有文件输入都与docfile ...
具有相同的ID所以在我的观点中我称之为getlist('docfile')
您可以使用
等常规数据执行相同的操作request.POST.getlist('idname')