0

この単純なコードを使用して、view.py でユーザーを作成します。

if not errors:
    user = User.objects.create_user(username, email, password)
    user.save()

検証を除いて、オブジェクトを作成する前にユーザー名とパスワードの値に対して行うことは何もありません。

しかし、これは Django API の User クラスにあります。ヘルプテキストの使い方がわかりません。ヘルプ テキストの場合、何を出力しますか? algo、salt、hexdigest のデフォルト値を見つけるにはどうすればよいですか?

password = models.CharField(_('password'), max_length=128, help_text=_("Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."))
4

3 に答える 3

1

create_userパスワードハッシュを自動的に生成し、データベースにユーザーを作成します(したがって、それは必要ありませんuser.save()

ユーザーの作成に関するドキュメントを参照してください。

于 2012-05-15T11:21:16.280 に答える
0

ヘルプ テキストは基本的に、User オブジェクトを編集するときに django admin に表示されるメッセージのコードです。sha1$12345$1234567890abcdef1234567890abcdef12345678編集フォームを見ている人に、そのユーザーに設定されたパスワードの代わりにパスワード フィールドに次のようなものが表示される理由を説明するためのものです。その理由はもちろん、パスワードはセキュリティのためにハッシュされており、その表現には後でユーザーが入力したパスワードを検証するために必要なすべての情報が保持されているためです。

管理者ユーザー編集フォームには、パスワードを編集するための特別なページがあります。コードでユーザーのパスワードを編集する場合は、User オブジェクトのset_passwordメソッドを使用します。check_passwordメソッドは、提供されたパスワードを確認するためのものです。

make_passwordのドキュメントには、Django が使用および使用できるアルゴリズムに関する詳細情報が含まれています。Django <1.3 のデフォルトは でしたがsha1、Django 1.4 ではデ​​フォルトが に変更されましたPBKDF2。のデフォルト値saltはランダムな文字列です (これは、2 つの同一のパスワードがデータベースで同じに見えないようにするためです)。Hexdigestハッシュアルゴリズムでハッシュされたパスワード文字列とソルト文字列の値です。githubのコードで詳細を読むことができます。

于 2012-05-15T13:38:49.760 に答える