我正在使用 Ajax 代码上传文件。Django 很好地处理了 ModelForms 上的文件上传。只需编写 form.save() 即可在标题中上传任何文件数据,在需要时管理创建文件夹,甚至在已存在重复文件时重命名文件。以这个只有一个名为 file 的 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 的强大功能,那有什么意义呢?