Django文件上传......为什么这个工作?

时间:2011-03-21 21:13:56

标签: django django-models file-upload

这是我第一次尝试使用Django上传文件。我做了一些事情,虽然我后来意识到这不是正确的做法,但它确实奏效了。当我在对象上调用save时,它是否调用了FileField的内置处理程序?我意识到我应该创建自己的处理程序,但我只是好奇为什么这样做。

def upload_test(request):
user=User.objects.get(pk=user.id)
photoform=PhotoForm()
if request.method=='POST':
    photoform=Post_PhotoForm(request.POST,request.FILES)
    if photoform.is_valid():
        photo=photoform.save(commit=False)
        photo.user=user
        photo.save()
        return HttpResponse('success')
    else:
        return HttpResponse('%s' %photoform.errors)
return render_to_response("site/upload_test.html", {'photoform':photoform}, context_instance=RequestContext(request))   

这是保存对象并将文件上载到FileField中指定的目录。

如果我创建一个以块的形式写入文件的处理程序,我怎样才能保存photoform实例?它会造成重复吗?

感谢您的见解。

1 个答案:

答案 0 :(得分:1)

我认为PhotoFormModelForm?只有docs中所述的手动处理上传文件才需要标准Form。块处理由models.FileField及其storage对象等在后台执行。