django.contrib.auth.models.AbstractBaseUserとして従来の読み取り専用DBを使用しようとしています。問題は、私の従来のパスワードフィールドはSHA1で、 'sha1 $$'文字列を開始せず、ハッシュのみであるため、すべてのパスワードに余分な文字列を追加する必要があるということです。Django - 確認する前にパスワードハッシュを変更します。
models.py明らか
class Tuzytkownik(AbstractBaseUser):
login = models.CharField(db_column='LOGIN', max_length=50, unique=True)
haslo = models.CharField(db_column='HASLO', max_length=50)
password = 'sha1$$' + haslo
USERNAME_FIELD = 'login'
REQUIRED_FIELDS = []
パスワード= 'SHA1 $$' + haslo
は働いていません。どのように私はそれを痛感することができますか?
はspecyficであるために - haslo 40charts returingハッシュのような
'cf23df2207d99a74fbe169e3eba035e633b65d94' 私は必要なもの
'SHA1 $$ cf23df2207d99a74fbe169e3eba035e633b65d94'
あなたはこれを参照し、saveメソッドのデフォルトをオーバーライドして、そこにパスワードフィールドを設定することができます(HTTPS [保存事前定義の上書き]://docs.djangoprojectを。 COM/EN/ – Sheshnath
私のレガシーDBが読み取り専用..saveは()はいDBに保存している)、事前に定義されたモデル・メソッドをオーバーライド1.11 /トピック/ DB /モデル/#? – luzik
いいえ、そのアプローチはいくつかの理由で機能しません。 (あなたがモデルフィールドが実装されているかジャンゴ調査する必要があり、また、パスワードハッシュと認証はジャンゴで起こるか。どちらが非常に複雑である)DBが読み取り専用であるので、私はあなたの最善の策は、カスタム認証バックエンドクラスを書くことだと思います。 https://docs.djangoproject.com/en/1.11/topics/auth/customizing/#writing-an-authentication-backend –