我看了这个问题:
Uploading multiple files with Django
但是由于我遇到了问题,它似乎没有帮助:
使用Django,我怎样才能拥有这种HTML表单结构:
<form enctype="multipart/form-data" action="." method="post">
<label for="id_image_1">Image 1</label>
<input type="file" name="image[]" id="id_image_1" />
<label for="id_image_2">Image 2</label>
<input type="file" name="image[]" id="id_image_2" />
</form>
并使用视图处理它?</ p>
答案 0 :(得分:2)
如果您有固定数量的文件字段,则可以简单地定义具有足够文件字段的表单,或者在表单的构造函数中以编程方式添加文件字段。请参阅File Uploads上的Django文档。
如果您想要某种动态功能(la gmail的“添加另一个文件”),那么您可以使用具有单个文件字段的表单来定义表单集。最初显示单个表单,当您想要添加另一个表单时,使用一些小的javascript来生成新表单并更新formset的管理表单。有number of snippets floating可以帮助您完成此操作,但可能需要进行一些调整。请参阅File Uploads和Formsets上的Django文档。
另一种选择可能是使用custom widget and field,但我没有审核或试过这个。
在您不知道的机会中,name =“image []”方案是特定于PHP的,除非您重新实现,否则在其他语言中没有特殊含义。
答案 1 :(得分:0)
newforms是1.0之前调用当前表单的内容。此外,如果您的表单已经过验证http://docs.djangoproject.com/en/dev/topics/http/file-uploads/,那么您将在request.FILES ['image']中将您的文件作为列表(可能是元组,但无论如何都是序列),所以只需执行:
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
for f in request.FILES['image']:
handle_uploaded_file(f)
你必须自己编写handle_uploaded_file,URL解释了如何