とにかく使わねばならないDjangoで管理者パスワードがわからなくなってしまった。
調べてみるとウェブには情報が当然の用にある。
ディレクトリsettings.pyのあるところの1つ上で
export DJANGO_SETTINGS_MODULE=mysite.settingsとかして
settings.pyを差しておいて
pythonで
from django.contrib.auth.models import User
users = User.objects.all()
users[]
users[0].set_password('1');
users[0].save()
とやる。
ということでやってみていたのですが、sqlite3の内容が変わらない。
よくわからないのだが、
user = User.objects.get(username='')
user.set_password('')[]
user.set_password('1');
user.save()
だとうまくDBが書き変わった。
いやほんとに何しろ何もかもわからない。チュートリアルみながらアプリをつくってみたりしながら、Djangoを学んでいる状態で、なにか根本的にまちがっているかもしれない。が、とにかくそうなった。というだけ。
auth_userのpasswordフィールドは
関数$ソルト$ハッシュ化されたパスワード
ということらしく
sha1+ソルト+hashlib.sha1(ソルト+パスワード).hexdigest()
こんな風にすれば生成できるのでそれをそのまま入れ替えてもいいのかもしれない。
てか、ここに書いてありました。(泣)
http://docs.djangoproject.com/en/dev/topics/auth/
コメント