回答:
python manage.py changepassword <user_name>
manage.py createsuperuser
、2番目のスーパーユーザーを作成し、ユーザーのリストを表示して元のスーパーユーザーを見つけることができます。次に、元のユーザーとしてログインし、新しいスーパーユーザーを削除します。
python manage.py createsuperuser
別のスーパーユーザーが作成され、adminにログインしてユーザー名を確認できます。通常のユーザー権限を与えるには、次のコマンドでシェルを開きます python manage.py shell
みてください。
from django.contrib.auth.models import User
user = User.objects.get(username='normaluser')
user.is_superuser = True
user.save()
user.is_staff = True
コンソールを試してみてください:
python manage.py shell
シェルで次のスクリプトを使用します
from django.contrib.auth.models import User
User.objects.filter(is_superuser=True)
システム上のすべてのスーパーユーザーが一覧表示されます。リストからあなたのユーザー名を認識した場合:
usr = User.objects.get(username='your username')
usr.set_password('raw password')
usr.save()
新しいパスワードを設定します(:
User.objects.filter(is_superuser=True)
pip install django-extensions
に追加してinstalled apps
実行し./manage.py shell_plus
ます。User
クラスが利用できるようになり、あなたのことができpassword-change
。
createsuperuser
コマンドで新しいスーパーユーザーを作成できます。
ユーザー名とパスワードを取得する最良の方法の1つは、それらを表示して更新することです。ユーザーモデルは、そのための完璧な方法を提供します。
ユーザーのリストを印刷します。Python2ユーザーの場合は、「print users」コマンドを使用します。Python3ユーザーの場合は、「print(users)」コマンドを使用します。通常、最初のユーザーはadminです。
パスワードを変更したいユーザーを選択してください。
"user = users[0]"
パスワードを設定する
user.set_password('name_of_the_new_password_for_user_selected')
新しいパスワードを保存します
"user.save()"
サーバーを起動し、ユーザー名と更新されたパスワードを使用してログインします。
manage.py changepassword
使用できるパスワードや使用できないパスワードに制限されないことです。ユーザー名ががらくたに似ていることはありません。(これは私の開発環境にあります。私はより弱いパスワードを
これを行う2つの方法:
changepassword
管理コマンド:
(env) $ python manage.py changepassword <username>
または、次のようにdjango-adminシェルを使用して(いくつかの回答を拡張しますが、拡張されたユーザーモデルでも機能します)。
(env) $ python manage.py shell
これにより、次のようにシェルコマンドプロンプトが表示されます。
Python 3.7.2 (default, Mar 27 2019, 08:44:46)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>
次に、次のようにします。
>>> from django.contrib.auth import get_user_model
>>> User = get_user_model()
>>> user = User.objects.get(username='admin@hug.com')
>>> user.set_password('new password')
>>> user.save()
>>> exit()
NBなぜこの回答でこの質問に答えたのですか?
前述のように、User = get_user_model()
独自のカスタムUser
モデルで機能します。from django.contrib.auth.models import User
then を使用User.objects.get(username='username')
すると、次のエラーがスローされる場合があります。
AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'
adminユーザーの作成を忘れた場合は、最初にcreatesuperuser
コマンドをオンにして作成しmanage.py
、次にパスワードを変更してください。
あなたはこれを試すことができます:
1.コンソールなしでスーパーユーザーのパスワードを変更する
python manage.py changepassword <username>
2.コンソールからスーパーユーザーのパスワードを変更する
ここで作成したユーザー名がわからない場合。上記の@FallenAngelで説明されているように、ユーザーを取得できます。
python manage.py shell
from django.contrib.auth.models import User
usrs = User.objects.filter(is_superuser=True)
#identify the user
your_user = usrs.filter(username="yourusername")[0]
#youruser = usrs.get(username="yourusername")
#then set the password
ただし、独立したユーザーモデルを作成した場合。単純なケースは、デフォルトのユーザー名の代わりにユーザー名としてメールを使用したい場合です。その場合、ユーザーモデルがyour_accounts_app.modelsなどのどこかに存在する場合、上記のソリューションは機能しません。この場合、代わりにget_user_modelメソッドを使用できます
from django.contrib.auth import get_user_model
super_users = get_user_model().objects.filter(is_superuser=True)
#proceed to get identify your user
# and set their user password
管理者を忘れた場合は、次を使用して新しいユーザーを作成する必要があります
python manage.py createsuperuser <username>
パスワードにはchangepassword
、djangoがユーザーのパスワードを変更するためのCLIコマンドがあります
python manage.py changepassword <username>
または
django-admin changepassword <username>
またはDjango envでこのコードを実行します
from django.contrib.auth.models import User
u = User.objects.get(username='john')
u.set_password('new password')
u.save()
注目に値するもう1つのことは、ユーザーのステータスis_staff
をアクティブに設定することです。少なくとも、それが私にとってそれがうまくいく理由です。詳細については、superuser
上記で説明したように別のものを作成しました。次に、データベーステーブルに移動し、auth_user
そのユーザー名を検索して、is_staff
フラグがに設定されていることを確認し1
ます。これでようやくadmin
サイトにログインできるようになりました。
コマンド「python manage.py createsuperuser」で新しいスーパーユーザーを作成します。新しいスーパーユーザーとしてログインします。「ユーザー」リンクをクリックします。次に、削除するユーザーをクリックします。フォームページの最後にあるユーザーの削除をクリックします。
注-上記のプロセスにより、その特定のユーザーによって実行されたアクティビティログが変更されます。
python manage.py changepasswordユーザー名