Django noob。 MySQLからPostgreSQLにテーブルをエクスポートおよびインポートしました。クライアントと顧客の表はusers
となります。Django:レガシー(auth_userではない)テーブルへの暗号化されたパスワード
Djangoがpython manage.py shell
を使用して暗号化に使用するテストアカウントのパスワードを更新しようとしています。 no attribute 'set_password'
がありますので
from account.models import Users
user = Users.objects.filter(pk=2)
user.set_password('new_password')
エラー:ハッシュ・アルゴリズムがにインポートされていないので、明らかに動作しません、以下を試してみました。
Fine。
from django.contrib.auth.models import User
User.objects.filter(pk=2)
Queryset []
User.objects.all()
そして、それはauth_user
表にのみユーザーを返します。すべてのチュートリアルの言うことを試してみてください。
基本的に、私はDjangoの暗号化を従来のusers
テーブルに対してどのように使用しますか?
Djangoクライアントと顧客アカウントでauth_user
テーブルに入るようですか? /admin
にアクセスする必要があり、そのアプリを使用するクライアント/顧客が別のテーブルにアクセスする必要があるユーザーのために、そのテーブルをもっと考えていました。
EDIT 1:
レガシーテーブル管理定義された塩で保存されたパスワードは、(私は塩が同じであったことは言う理由があるので、Djangoはそのような各ユーザーまたは何かのために独自のアルゴリズムを使用しています信じていました誰でも)+ハッシュアルゴリズム(SHA256私は思う)を介して送信されたユーザーのパスワード。そうプレーンテキストではありません。
私はすべてのパスワードをクリアして、新しいものを作成しようとしていました。古いテーブルは1つのハッシュを使用し、Djangoは全く別のものを使用していたので、私はDjangoハッシュの下で解読と再暗号化を混乱させたくありませんでした。最初から始めましょう。
また、クライアント/顧客向けにusers
テーブルを使用し続け、/admin
のユーザーのためにauth_user
を保持したいと思います。私の考え方は間違っています。
ありがとうございます。私のクライアント/顧客をDjangoの '/ admin'ユーザとは別のテーブルに入れようとしているので、' users'テーブルを使い続けたいと思います。 Djanoのハッシュを使ってパスワードを与えたいだけです。 – sockpuppet
は答えを – e4c5
Hmmm ...更新しました。顧客のために私は 'is_staff = false'と' is_superuser = false'を '/ admin'にアクセスできないようにしますか?私はこれらのfalseに(またはちょうど 'is_client'フィールドを追加する)アプリケーションに直面している顧客のロジックに基づいています。また、同じトピックを議論するようだこのスレッドを発見した:http://stackoverflow.com/questions/34743482/how-to-separate-users-models-by-admins-and-customers-on-django – sockpuppet