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ってユーザー名に@とか使えるんでしたっけ・・。

まぁいいやΣ(・▽・