djangoのユーザ管理ではビルトインのviewが利用できる。

https://docs.djangoproject.com/en/1.5/topics/auth/default/#module-django.contrib.auth.views

 

上記URLに書いてあるようにloginの場合はurls.pyに

みたいな感じで、viewにビルトインのビューと任意のテンプレートを設定してあげて、

テンプレートにはこれまたデフォルトで設定されているformを色々と弄ってあげればOK。

(※上記参照)

 

と、ここまでは使い方がソースコードとともに説明されてあるから良いけど、

logout以降はサンプルソースとか使い方が詳細に書いていない!

本当にどこにも書いてない上に、ググっても出てこないので、

django使いはソースコードを読んで理解しているのか!?

 

ということで、ソースコード直接読んで何となく理解しました。

基本的にはフィールドの設定とバリデーションを組んでいるだけで、

templateは利用するフィールドを理解していれば、

あとはPOSTするだけでOKな感じ。

 

具体的には

1. {% form %}とか{% for field in form.base_fields %}{{  field }}{% endfor %}とかで

出力するフィールド名をメモ

2. 対象フィールド名をformタグ内に書き込む(ex.  {{ form.old_password}})

な流れで不自由なく使えると思う。

 

っていうかそんな大したソースじゃないのでgithubで解析するのが一番かも。

 

で、password_changeはこんな感じで動いた。

 

ユーザ管理関連ってログイン、ログアウト、パスワード変更、パスワードリセットとありふれた感じで

DRY原則に則るならば、ビルトインも使えこなせるようにならないと!と思いました。