在我的CreateView
课堂上,我将重写该form_valid()
函数,如下所示:
class ActionCreateView(CreateView):
model = Action
form_class = ActionCreateForm
success_url = reverse_lazy('profile')
def get_initial(self):
initial = super(ActionCreateView, self).get_initial()
initial['request'] = self.request
return initial
def form_valid(self, form):
form.instance.user = self.request.user
print 'user: %s'%form.instance.user
try:
da = form.cleaned_data['deadline_date']
ti = datetime.now()
form.instance.deadline = datetime(da.year, da.month, da.day, ti.hour, ti.minute, ti.second )
except Exception:
raise Http404
return super(ActionCreateView, self).form_valid(form)
但事实证明,该form_valid
方法从未被调用,因为user
从未打印过。有趣的是,clean
forms.py 中的方法被调用了。
没有显示错误(因此我没有要显示的回溯)。用户只是再次被重定向到表单。 这种行为的原因可能是什么? 我在 Django 1.5 和 Python 2.7 上运行。