如何从Django Form FileField中提取文件对象

时间:2012-08-28 12:04:08

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

我创建了一个包含字段titlefilecontent的模型框架。这里file是一个FileField()。但由于某些原因,我无法调用此表单的save()方法。所以我必须手动创建一个模型对象并将清理后的值分配给该对象。 FileField的所有功能都让人感到震惊。该文件未保存。我怎样才能解决这个问题?它是提取FileField的正确方法吗?

表格

class TestForm(forms.ModelForm):
    class Meta:
        model = Test
        fields = ('title','file', 'content',)

Views.py

 form = TestForm(request.POST,request.FILES)
 if form.is_valid():
     content = form.cleaned_data['content']
     file = form.cleaned_data['file']
     title = form.cleaned_data['title']
     fax = Fax()
     fax.title = title
     fax.file = file
     fax.content = content
     fax.save()

此处文件未保存。我怎样才能解决这个问题? 任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:5)

您是否在表单中使用过enctype="multipart/form-data" 好像代码很好。

答案 1 :(得分:2)

请使用此类验证。这可能有用

if request.method == 'POST':
    form = ModelFormWithFileField(request.POST, request.FILES)
    if form.is_valid():
        # file is saved
        form.save()
        return HttpResponseRedirect('/success/url/')``

答案 2 :(得分:0)

我认为你可以使用

request.FILES['file']

获取文件对象