django表单有多个文件字段

Big*_*ock 14 python django django-forms

你如何处理Django中的多个文件字段.例如,如果我只有一个表单字段,我会将request.FILES ['file']传递给处理函数.但是当有更多文件时,该怎么办?

Edd*_*Edd 31

我迟到了,但我一直试图弄清楚这一点,最后有一个解决方案.看看这里使用的代码:https://code.djangoproject.com/ticket/12446

您可以使用getlist访问多部分值.如果我的HTML表单是:

<form enctype="multipart/form-data" action="" method="post">
<input type="file" name="myfiles" multiple>
<input type="submit" name="upload" value="Upload">
</form>
Run Code Online (Sandbox Code Playgroud)

我的django代码处理它看起来像:

for afile in request.FILES.getlist('myfiles'):
    # do something with afile
Run Code Online (Sandbox Code Playgroud)

编写表单字段/窗口小部件以正确处理此问题是我的下一步.我仍然很喜欢使用Django,所以我正在学习.


小智 9

request.FILES.get('filename', None) 响应形式命名字段的存在,如下所示:

<input type="file" name="filename"></input>
Run Code Online (Sandbox Code Playgroud)

如果您有两个这样的字段:

<input type="file" name="file1"></input>
<input type="file" name="file2"></input>
Run Code Online (Sandbox Code Playgroud)

然后request.FILES.get('file1', None),request.FILES.get('file2', None)应该分别给你这些文件.

原因是多部分哑剧.应该上传这三个部分(表单数据,文件1,文件2),并且Django的UploadFileHandler 分别将它拆分为request.POSTrequest.FILES.