Djangoで基本的なログイン・ログアウト処理をしてみる
投稿日:2006/07/20 01:30:38
過去の記事は移行時の問題により、画像が表示されなかったり、レイアウトが崩れたりしている可能性があります。
Tweet
【参考サイト】
Prosthetic Conscience - Generic views for login and logout
http://www.carcosa.net/jason/blog/computing/django/gotchas-2006-04-19
2,3日前にメモったサイト↑に書いてあった、
GenericViewsを使ってログインっていうのを実践してみました。
でもこれってGenericViewsなんだろうか。
とりあえずviews.pyをまったく書かずに実装はできました。
自分が使ってるリビジョン(3380)では、urls.pyが参考サイトのままだとだめでした。
こんな感じにしてみました。
#urls.py from django.conf.urls.defaults import * urlpatterns = patterns('’, (r’^login/’, ‘django.contrib.auth.views.login’, {’template_name’: ‘login/index.html’}), (r’^logout/’, ‘django.contrib.auth.views.logout_then_login’, {’login_url’: ‘/login/’}), (r’^member/’, ‘django.views.generic.simple.direct_to_template’, {’template’: ‘member/index.html’}), )django.contrib.auth.views.loginは、 ログイン処理とログインフォーム表示用のViewです。 デフォルトだとテンプレートがregistration/login.html になってるので、login/index.htmlに変えてます。 django.contrib.auth.views.logout_then_loginは、 ログアウト処理後、ログインページに飛ばすViewです。 引数のlogin_urlは絶対パスを指定した方がいいのかな。 django.views.generic.simple.direct_to_templateは、 指定したテンプレートを表示するだけのViewです。 ここでは、ログイン後のページ/member/で表示するテンプレートを指定しています。
#login/index.html {% if user.is_anonymous %} <form method=”post” action=”./?next=/member/”> {% if form.username.errors %} <span style=”color:red”>{{ form.username.errors|join:”, ” }}</span> <br /> {% endif %} <label for=”username”> ユーザ名: </label> {{ form.username }} <br /> {% if form.password.errors %} <span style=”color:red”>{{ form.password.errors|join:”, ” }}</span> <br /> {% endif %} <label for=”password”> パスワード: </label> {{ form.password }} <br /> <input type=”submit” value=”ログイン” /> </form> {% else %} <p>{{ user.username }}さん、こんにちは。</p> {% endif %}bodyタグとかは書いてませんが、ログインページのhtmlです。 {% if user.is_anonymous %}{% endif %}で、 ログインしてるかどうかをチェックしてます。 falseの場合、ログイン状態ですのでフォームの変わりに挨拶を出してみます。
- Posted at:
- 2006/07/20 01:30:38
- 0 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://blog.monospace.jp/2006/07/20/django-genericviews-auth/trackback/
TrackBacks
まだ登録されていません。
Comments
まだ登録されていません。