我创建了一个包含字段title
,file
和content
的模型框架。这里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()
此处文件未保存。我怎样才能解决这个问题? 任何帮助将不胜感激!
答案 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']
获取文件对象