form_valid()用于
CreateView并
UpdateView保存表单的方法,然后将其重定向到成功URL。这是不可能的
return super(),因为你想在要保存的对象和重定向之间进行操作。
第一种选择是不调用
super(),并在视图中复制两行。这样做的好处是非常清楚发生了什么。
def form_valid(self, form): self.object = form.save() # do something with self.object # remember the import: from django.http import HttpResponseRedirect return HttpResponseRedirect(self.get_success_url())
第二种选择是继续调用
super(),但是直到你更新了关系后才返回响应。这样做的好处是你没有在中复制代码
super(),但是缺点是除非你熟悉所
super()执行的操作,否则不清楚正在发生的事情。
def form_valid(self, form): response = super(CourseCreate, self).form_valid(form) # do something with self.object return response



