我正在使用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的强大功能在哪里?
答案 0 :(得分:0)
form = UploadFileForm(request.FILES)
if form.is_valid():
form.save()
初始参数允许您初始化表单字段,例如为新表单提交一些初始数据。
在这里,您将从请求中获取文件数据。