使用 Django 1.5.1,我启用了会话INSTALLED_APPS
以及MIDDLEWARE_CLASSES
我有一个django.views.generic.edit.CreateView
负责在注册时创建新用户。那部分工作得很好。它还会向新用户发送一封电子邮件以激活他们的帐户。这也很好用。
提交表单并确定表单有效后,将用户重定向到成功 url。在该成功 url 页面上,我想通知他们一封电子邮件已发送到他们的电子邮件地址,例如“一封电子邮件已发送到 foo@bar.com”
self.request.session['email'] = user.email
在重定向生成之前,我一直在表单视图中使用。在本地(使用 sqlite DB 后端),这非常有效。当重定向加载时,我看到“一封电子邮件已发送到 foo@bar.com”。
但是,当我将它部署到我的登台服务器时,我看到“一封电子邮件已发送到 ”。如果我手动刷新该页面,则它会正确显示电子邮件。我的登台服务器上的数据库后端是 MySQL。
def form_valid(self, form):
user = form.save()
self.request.session['email'] = user.email
self.send_notification(user)
return super(AccountCreateFormView, self).form_valid(form)
编辑:
在模板中,我有以下内容:
An email has been sent to {{ request.session.email }}.