Hatena::Grouptakatoshi

メモ帳 このページをアンテナに追加 RSSフィード

 | 

2007-10-21

django-registration

16:51 |  django-registration - メモ帳 を含むブックマーク はてなブックマーク -  django-registration - メモ帳  django-registration - メモ帳 のブックマークコメント

Google Code Archive - Long-term storage for Google Code Project Hosting.を使ってユーザー認証をやってみたので感想とか書いておく。

躓いたところとか

テンプレート

Examples of all of these templates are not provided; you will need to create them yourself.

http://django-registration.googlecode.com/svn/trunk/docs/overview.txt

つーことでテンプレゼロから作んないと行けない。これは敷居高い><

なので、

ユーザー認証のみのプロジェクトDjangoで作ってみました。

サンプル程度には使えるかと思いますので

よかったら使ってみてください

http://d.hatena.ne.jp/jYoshiori/20070930/1191180980

使わせていただきました!

これを自分のbase.htmlに合うように修正して使ったよ。

メール送信

メール送れなかった。

まずはConnection refusedと言われる。

$ telnet localhost 25
Trying ::1...
telnet: connect to address ::1: Connection refused
telnet: Unable to connect to remote host: Connection refused

むむ。

$ netstat -ln |grep :25
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN

あ。これか?

ってことでsettings.pyに以下の設定を追加して解決!

EMAIL_HOST = '127.0.0.1'

次にSender refusedって言われる。

from_email: 送信者のアドレスです。 fred@example.com 形式でも Fred <fred@example.com> 形式でもかまいません。省略すると、 DEFAULT_FROM_EMAIL の設定値を使います。

no title

なのでsettings.pyに以下の設定を追加!

DEFAULT_FROM_EMAIL = 'e-mai address'
URLの調整

registration.views.registerはsuccess_urlのデフォルト値が/accounts/register/complete/になってるので、

http://example.com/app_path/以下にアプリケーションを配置している場合にうまくいかない。

urls.pyを以下のようにして解決。

urlpatterns += patterns('',
    (r'^app_path/accounts/register/$', 'registration.views.register',
      { 'success_url': '/app_path/accounts/register/complete/' },
      'registration_register'),
    (r'^app_path/accounts/', include('registration.urls')),
)

不満なところ

メールテンプレート

登録メールメッセージはmodels.pyでこんな感じで作ってる。

 98             message = render_to_string('registration/activation_email.txt',
 99                                        { 'activation_key': registration_profile.activation_key,
100                                          'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS,
101                                          'site': current_site })

できればここに追加パラメータを持たせたいんです。

メール

{{ user.username }}さん

とか書きたかったけどできなかった。

こんなとこか

あとは管理画面の認証で使うアカウントユーザー側の認証で使うアカウントが同じauth_userというテーブルに入ってるのが気持ち悪いい。。けどとりあえず我慢する。

それにしてもまたとくにコードを書かずに一通りできてしまったな。

いいのか悪いのか。。

---

参考にしたURL

ユーザー認証をやってみる - Djangoへの片思い日記

Error 404 (Not Found)!!1

404 Not Found

no title

no title

----

追記:

あと、ユーザーの仮登録はauth_userとregistration_registrationprofileにINSERTしてメール送るって処理だけど、これは全部含めて1つのトランザクションになるんではないかって気がします(models.pyのcreate_inactive_user()の処理)。だから、ひとつでも失敗したらロールバックするような仕組みじゃないといけないんじゃないの?

そうしないと、テーブルにレコードはできたけどメールの送信に失敗しましたってことが、(まあないだろうけど)あり得る。現状はそうなってない。

 |