Django ModelForm Ajax上传

时间:2010-09-18 08:12:53

标签: django file-upload django-forms ajax-upload

我正在使用Ajax代码上传文件。 Django很好地处理ModelForms上的文件上传。只需编写form.save()就可以上传标题中的任何文件数据,管理创建文件夹(如果需要),甚至重命名文件(如果已存在重复文件)。拿这个只有一个命名文件的ModelForm例如:

class UploadFileForm(ModelForm):
    class Meta:
        model = MyModel
        fields = ('file',)

由于我使用Ajax,我在视图中的唯一信息是request.FILES ['file']。这就是我在我看来尝试的内容:

 form = UploadFileForm(initial={'file':request.FILES['file']})
 if form.is_valid():
     form.save()

但它返回一个无效的表单(文件是必需的)。我可以使用纯Python来做到这一点但是Django的强大功能在哪里?

1 个答案:

答案 0 :(得分:0)

form = UploadFileForm(request.FILES)
if form.is_valid():
    form.save()

初始参数允许您初始化表单字段,例如为新表单提交一些初始数据。

在这里,您将从请求中获取文件数据。