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 に送信されました」と表示されます。
しかし、これをステージング サーバーに展開すると、「メールが送信されました。」と表示されます。そのページを手動で更新すると、メールが正しく表示されます。私のステージング サーバーの DB バックエンドは 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 }}.