django-registration0.6のインストール
こんばんはー。
django-registration0.6のインストールでちょっと詰まったので書いときます。
環境:
Mac-MountainLion
django-registration 0.6
django-1.4.x(調べるの面倒だった。)
まず、http://d.hatena.ne.jp/jYoshiori/20070930/1191180980
ここのサイトの通りにインストール、runserverまでやってみたところ
ImportError at /accounts
cannot import name alnum_re
Request Method: | GET |
---|---|
Request URL: | http://127.0.0.1:8000/accounts |
Django Version: | 1.4.3 |
Exception Type: | ImportError |
Exception Value: |
cannot import name alnum_re |
Exception Location: | /Library/Python/2.7/site-packages/registration/forms.py in <module>, line 8 |
Python Executable: | /usr/bin/python |
Python Version: |
2.7.2 |
こんなエラーが出ました。
alnum_reが見つからないらしい。
言われた通り、/Library/Python/2.7/site-packages/registration/forms.py
このパスを見たところ8行目で
from django.core.validators import alnum_re
と、インポートしていました。
調べてみると、今のバージョンのdjangoには入ってないらしいです・・。
やってることは正規表現ライブラリのreとほとんど一緒なので、ちょこっと修正しましょう!
今回は素直に/Library/Python/2.7/site-packages/registration/forms.pyを直接編集します。
# sudo vim /Library/Python/2.7/site-packages/registration/forms.py
等でファイルを開いてから、以下の様に編集してください。
>|python|
7 from django import forms
8 # from django.core.validators import alnum_re
9 from django.utils.translation import ugettext_lazy as _
10 from django.contrib.auth.models import User
11
12 from registration.models import RegistrationProfile
13
14 import re
15 alnum_re = re.compile(r'^\w+$')
||<
8行目をコメントアウト、
14行目と15行目を書き足して上げましょう!
ユーザー名の検査でnum_reが使われているので、それをコンパイルしてalnum_reに渡しちゃえば、問題なく使えます。
でも最近のDjangoってユーザー名に@とか使えるんでしたっけ・・。
まぁいいやΣ(・▽・