【发布时间】:2011-07-03 23:28:15
【问题描述】:
允许用户使用 Django 进行任意数量的文件上传的最佳方式是什么?
如果我知道我将允许用户上传最多两个文件,那么我可以在我的 forms.py 中执行此操作...
from django import forms
class UploaderForm(forms.Form):
file1 = forms.FileField(upload_to='user_files')
file2 = forms.FileField(upload_to='user_files')
...这在我的views.py...
...
if request.method == 'POST':
form = UploaderForm(request.POST)
if form.is_valid():
form.save()
# do something.
else:
form = UploaderForm()
...
但是,我计划在前端使用 Javascript 以允许用户不断添加新的 <input type="file" name="fileN" /> 元素(其中 N 是添加到页面的第 N 个文件上传字段。)用户可以选择上传选择了一个或多个文件。
有什么方法可以使用 Django 的内置表单来完成此任务?
如果我怀疑我不能使用 Django 表单来生成表单,我可以使用 Django 的验证吗?即,能够访问form.cleaned_data['file0']、form.cleaned_data['file1'] 等会很方便,而不必自己进行验证。
谢谢。
【问题讨论】:
标签: javascript python django forms http-upload