Django: 管理者の承認によるユーザ登録

やりたいこと
  • ユーザ登録画面においてE-Mailアドレスとパスワードを入力する。
  • 管理者に登録承認のためのメールが届く。
  • メール内にあるURLをクリックするとユーザ登録が完了する
実装方針
  • ユーザ登録のベースはnaritoブログを参考に構築。
  • これをベースに変更を加える。

torina.top

調査・実装案
  • views.pyのclass UserCreate(generic.CreateView)を確認。
  • user.email_user(subject, message)が登録されたアドレスにActivateするためのメールを送っている。
  • この中身はmodel.pyのclass User(AbstractBaseUser, PermissionsMixin)を見ると、def email_user(self, subject, message, from_email=None, **kwargs):で定義されている。
  • 登録されたアドレスへメールするのではなく、user.email_userを参考に、views.pyのAdminチェック入のUserCreateに管理者へのメールを追加する。
  • すでにあるユーザ登録の機能はそのままキープしておきたいのでclass UserCreate(generic.CreateView)をはじめ、done, completeも別クラスとして定義する。URLも新たに定義してurls.pyに登録する。まぁ、一式全部作る。

実装については別途書く予定。