python - 多文件上传django

标签 python django django-forms multifile-uploader

我知道如何在 djnago 中上传多个文件。我使用:

<form enctype="multipart/form-data" action="" method="post">
    {% csrf_token %}
    <p>Press control to upload more than image at same time</p>
    <input type="file" name="myfiles" multiple>
    <input type="submit" name="upload" value="Upload">
</form>

但我想要的是单个文件上传,但允许用户点击“+”按钮并自动创建新文件上传,允许用户上传多个文件。比如在 hotmail 中附加一个文件。

最佳答案

您正在寻找一个 FormSet - 一组多个表单,以及一些用于填充新表单的 JavaScript。

https://docs.djangoproject.com/en/dev/topics/forms/formsets/

以下是对 JS 代码的一些引用,它们将有助于为新表单动态构建 HTML:

Dynamically adding a form to a Django formset with Ajax


设置表单集很容易(到处都有文档),但您可能需要 JS 部分的帮助:

我实际上使用不同的方法来动态添加表单。我用 formset.empty_form 设置了一个隐藏的 div,它的属性中带有易于替换的 __prefix__es:

var form_count = {{ formset.total_form_count }};
$('#add_form').click(function() {
    var form = $("#empty_form").html().replace(/__prefix__/g, form_count);
    $('#forms').append(form);
    form_count++;
    $('#id_form-TOTAL_FORMS').val(form_count);
});


<div id="empty_form" style="display:none;">
    {{ formset.empty_form.as_p }}
</div>
<div id="add_form">Add another form</div>
<form id="forms">
    {{ formset.management_form }}
    {% for form in formset %}
        {{ form.as_p }}
    {% endfor %}
</form>

关于python - 多文件上传django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10902340/

相关文章:

python - 如何为draw.text中的文本分配不同的颜色

Django - 即使在 POST 上没有更改任何字段,也保存 modelForm

Django "The submitted file is empty"

python - 尝试检索单个资源时,DRF ViewSet 中不允许使用方法 GET

python - Django 文件字段 : how to set default value (auto-create empty file)?

python - 迭代 pandas DataFrame 中的选择单元格并替换值

python - 在 Pandas 中是否有等效于 R 的 data.table fread cmd 关键字?

python - 根据当前数组中每个项目的第一个元素创建新数组

django - AWS 目标 WSGI 脚本 '/opt/python/current/app/core/wsgi.py' 无法作为 Python 模块加载

django - 如何使用 django 创建 oauth (REST) API(如 twitter 或 foursquare )?