Django FormView 不在子类上重定向
Django FormView Not Redirecting on Subclass
我一直在努力回到面向对象编程的流程中。当我创建一个 UploadServerInventory class 并上传一个文件时,我被重定向回根目录。但是,当我创建 UploadServerInventory 并上传文件时,我得到 "UploadServerInventory didn't return an HttpResponse object. It returned None instead."
我不应该继承父 class 的一切吗?看起来我正在将所有内容传回给 Super class?我遗漏了什么基本问题?
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)
您错过了子类 form_valid
方法中的 return 语句。
请注意,UploadExcelFile 中 form_valid
和 form_invalid
的定义完全没有意义。重写方法只是为了调用超类版本是没有意义的。
我一直在努力回到面向对象编程的流程中。当我创建一个 UploadServerInventory class 并上传一个文件时,我被重定向回根目录。但是,当我创建 UploadServerInventory 并上传文件时,我得到 "UploadServerInventory didn't return an HttpResponse object. It returned None instead."
我不应该继承父 class 的一切吗?看起来我正在将所有内容传回给 Super class?我遗漏了什么基本问题?
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)
您错过了子类 form_valid
方法中的 return 语句。
请注意,UploadExcelFile 中 form_valid
和 form_invalid
的定义完全没有意义。重写方法只是为了调用超类版本是没有意义的。