Django'中的文件处理;s FormView-request.FILES为空

Django'中的文件处理;s FormView-request.FILES为空,django,forms,file-upload,formview,Django,Forms,File Upload,Formview,我试图在Django中实现FormView,因为它似乎减少了一些样板代码。其中一个字段是文件上载字段 class LibraryUploadLastStageForm(forms.Form): technician = forms.ModelChoiceField(label="prepeared by" , queryset=Technician.objects.exclude(has_left=True).order_by('name') , required=True)

我试图在Django中实现FormView,因为它似乎减少了一些样板代码。其中一个字段是文件上载字段

class LibraryUploadLastStageForm(forms.Form):

    technician = forms.ModelChoiceField(label="prepeared by" , queryset=Technician.objects.exclude(has_left=True).order_by('name') , required=True)
    subprojects = forms.ModelChoiceField(label="Choose a subproject" , queryset=Subproject.objects.all().order_by('subproject_name') , required=True)
    lab_tracking_excel = forms.FileField(label="Choose the Lab Tracking Excel - protocol details associated with these libraries", required=False)
在views.py中

class LibraryUploadFinalView(FormView):

    template_name = 'sequencing/ChooseSomething.html' 
    form_class = LibraryUploadLastStageForm


    def form_valid(self, form):
        """
        Update the library technician, and create the librarysubproject links
        """

        id_list_str = self.request.GET.get('ids')
        ids = map(int , id_list_str.split(','))

        libraries = Library.objects.filter(id__in=ids)
        print libraries.count()

        cd = form.cleaned_data
        lib_kwargs = {}
        for library in libraries : 
            library.technician = cd['technician']
            if cd['lab_tracking_excel']:
                print cd['lab_tracking_excel']
            library.lab_tracking_excel = self.request.FILES
            library.save()    
            LibrarySubprojectStats(subproject=cd['subprojects'],
                               library=library
                               ).save()


        print "updated %s" % library.name

        return super(LibraryUploadFinalView, self).form_valid(form)
问题是,当我使用FromView form_valid()方法(保存详细信息)时,seld.request.FILES在调试器中检查时为空


更新:我可以看到该文件存储在form.data下,但是如何将它从那里获取到form.cleaned_data-哪个是空的?

确保表单元素具有
enctype='multipart/form data'
。啊,我想我已经从模板中删除了它,因为我不知道它在做什么。我现在添加了它,但它仍然是一样的。您需要粘贴视图实现。很抱歉,我在“multipart/forms”数据属性中有一个类型。它现在似乎起作用了。