美好的一天SO!
我有一个奇怪的情况,我不明白。我有一个FormView,用户可以在其中填写用户名或电子邮件来恢复帐户的密码。在视图FormView中我得到以下情况:
class RecoverPassword(FormView):
""" Request password recovery by username or email address """
template_name = "users/recover.html"
form_class = RecoverPasswordForm
def post(self, request, *args, **kwargs):
form = self.form_class(request.POST)
print(form) # <<<--- Removing this results in an error
username = form.cleaned_data.get("username")
if username:
print(username)
return HttpResponseRedirect(self.get_success_url())
这样可行,填充的用户名显示在终端中。 但是,如果我删除以下行:
print(form)
并使用用户名填写表单并点击提交,我得到以下内容 错误:
异常类型:AttributeError
例外价值:&#39; RecoverPasswordForm&#39;对象没有属性&#39; cleaning_data&#39;
我无法弄清楚为什么会这样。有人知道这里发生了什么吗?提前谢谢!
答案 0 :(得分:1)
为什么要在post
中执行此操作?改为使用form_valid
方法:
def form_valid(self, form):
username = form.cleaned_data.get("username")
if username:
print(username)
return HttpResponseRedirect(self.get_success_url())