我建立了一个网站与一个相当基本的用户系统,你可以做一些平常的事情,如登录,更改密码等,我使用的是一个Django项目的例子,并改变它在这里和那里有点
当用户登录时,我可以访问用户的电子邮件地址并将其添加到模板{{ request.user.email }}
中
但在一个链接中,通过电子邮件发送给用户重置他们的密码,在用户没有登录的情况下,同样的事情不起作用。我猜一定有可能通过某种方式访问它
这是我正在使用的类视图:
class RestorePasswordConfirmView(PasswordResetConfirmView):
template_name = 'accounts/restore_password_confirm.html'
def form_valid(self, form):
form.save()
messages.success(self.request, _('Your password has been set. You may go ahead and log in now.'))
return redirect('/')
def get_context_data(self, **kwargs):
context = super(RestorePasswordConfirmView, self).get_context_data(**kwargs)
context = {**context, **host_(self.request)}
return context
有没有办法访问user.email
变量
在
PasswordResetConfirmView
中,{{request.user.email}}
将不起作用,因为请求时没有设置经过身份验证的用户{{request.user}}
将保存AnonymousUser
对象但是,如果我们看看
PasswordResetConfirmView
是如何实现的,我们会注意到在PasswordResetConfirmView.dispatch()
中,Django将用户设置为self
,如下所示:这意味着您可以像上面所做的那样覆盖
get_context_data()
,并确保同时将用户发送到模板:相关问题 更多 >
编程相关推荐