django动态地形成多个字段

时间:2013-09-02 12:47:47

标签: python django forms model

所以我想创建一个包含3个元素的Education部分的成员表单:

Academic_Background的外国钥匙(拥有高中,BC学位,硕士学位等),

Charfield - 学校名称

Charfield - 研究领域

做一两个问题没问题......但是如何创建几个“教育”字段(通过添加“添加另一个”按钮并使用JS& Jquery向用户显示新的教育。

我应该在模型和表格中加入什么?以及如何将其保存在数据库中?

这似乎可能发生在某人之前,但我无法找到解决方案......

请帮忙!

由于

1 个答案:

答案 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')