2017-05-25 47 views
0

我一直在尝试回到OO编程的流程中。当我创建UploadServerInventory类并上传文件时,我将重定向回根。但是,当我创建UploadServerInventory并上传文件时,我得到一个“UploadServerInventory没有返回HttpResponse对象,它返回None”。Django FormView没有重定向到子类

不应该继承父类的所有内容吗?看起来我将所有事情都交给了超级班?我缺少什么根本问题?

class UploadExcelFile(FormView): 

    template_name = 'cmdb/upload.html' 
    form_class = UploadFileForm 
    success_url = '/' 

    def form_valid(self, form): 
     return super(UploadExcelFile, self).form_valid(form) 

    def set_excel_file(self): 
     self.excel_dict = self.request.FILES['file'].get_book_dict() 

    def form_invalid(self, form): 
     return super(UploadExcelFile, self).form_invalid(form) 


class UploadServerInventory(UploadExcelFile): 

    def form_valid(self, form): 
     self.set_excel_file() 
     super(UploadServerInventory, self).form_valid(form) 

    def form_invalid(self, form): 
     return super(UploadServerInventory, self).form_invalid(form) 

回答

1

您错过了子类form_valid方法中的return语句。

请注意,UploadExcelFile中form_validform_invalid的定义是完全没有意义的。重写仅用于调用超类版本的方法没有意义。

+0

没有足够厚的墙来让我在这种简单的监督下对抗我的头。谢谢! –