web-dev-qa-db-ja.com

Djangoの管理者パスワードを再設定するには?

私はDjango(バージョン1.3)を使っていて、管理者のユーザー名とパスワードの両方を忘れています。両方をリセットするには?

一般ユーザーを管理者にしてから管理者のステータスを削除することは可能ですか?

362
IamH1kc
python manage.py changepassword <user_name>

ドキュメントを参照

617
JamesO
  1. python manage.py createsuperuserは別のスーパーユーザーを作成します、あなたはadminにログインしてあなたのユーザー名を思い出すことができるでしょう。
  2. はい、そうではありません。

通常のユーザー特権を与えるには、python manage.py Shellでシェルを開いて試してください。

from Django.contrib.auth.models import User
user = User.objects.get(username='normaluser')
user.is_superuser = True
user.save()
152
DrTyrsa

あなたはコンソールを介して試すことができます:

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()

そして新しいパスワードを設定します(:

98
FallenAngel

createsuperuser commandを使用して、新しいスーパーユーザーを作成できます。

19
Aldarund

これはとても良い質問です。

python manage.py changepassword user_name

例: -

python manage.py changepassword mickey
12
anand24

新しいセットアップ - 最初に python manage.py createsuperuserを実行してユーザーを作成します。 adminにログインするためのデフォルトのユーザー名パスワードがないようです。

10
user3526

ユーザー名とパスワードを取得する最良の方法の1つは、それらを表示して更新することです。ユーザーモデルはそのための完璧な方法を提供します。

この場合、私はDjango 1.9を使っています

  1. ルートディレクトリに移動します。あなたの "manage.py"ファイルはあなたのコンソールかGitのような他のアプリケーションを使って見つけられます。
  2. コマンド "python manage.py Shell"を使ってPythonシェルを取得します。
  3. 「from Django.contrib.auth.models import User」というコマンドを入力して、ユーザーモデルをインポートします。
  4. 次のコマンド "users = User.objects.all()"を入力して、すべてのユーザーを取得します。
  5. ユーザーのリストを印刷するPython 2ユーザーの場合は "print users"コマンドを使用します。Python 3ユーザーの場合は "print(users)"コマンドを使用します最初のユーザーは通常adminです。

  6. パスワードを変更したいユーザーを選択してください。

    "user = users[0]"

  7. パスワードを設定する

    user.set_password('name_of_the_new_password_for_user_selected')

  8. 新しいパスワードを保存する

    "user.save()"

サーバーを起動し、ユーザー名と更新されたパスワードを使用してログインします。

また、セットアップの質問に間違って回答し、スタッフがいない場合もあります。その場合はpostgresに向かいます。

obvioustest=# \c [yourdatabasename]
obvioustest=# \x
obvioustest=# select * from auth_user;
-[ RECORD 1 ]+-------------
id           | 1
is_superuser | f
is_staff     | f
...

修正するには、直接編集します。

update auth_user set is_staff='true' where id=1;
5
Bryce

あなたはこれを試すことができます:

1.コンソールなしのスーパーユーザーパスワードの変更

python manage.py changepassword <username>

2.コンソールからスーパーユーザーパスワードを変更する

enter image description here enter image description here

4
Mr Singh

Create adminユーザーを最初に作成し忘れた場合は、manage.pycreatesuperuserコマンドを使用してパスワードを変更してください。

4
rapid2share

あなたがここで作成されたユーザー名を知らない場合に備えて。上記の@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
3
unlockme

コマンド "python manage.py fixesuperuser"を使用して、新しいスーパーユーザーを作成します。新しいスーパーユーザーとしてログインします。 「ユーザー」リンクをクリックしてください。次に、削除したいユーザーをクリックします。フォームページの最後にあるdelete userをクリックしてください。

注 - 上記のプロセスにより、その特定のユーザーによって行われたアクティビティログが変更されます。

2
Ishan Dixit

注目に値するもう一つのことは、あなたのユーザーのステータスis_staffをアクティブに設定することです。少なくとも、それが私にとってうまくいく理由です。さらに詳しくは、上で説明したように私は別のsuperuserを作成しました。次にデータベーステーブルauth_userに行き、そのユーザー名を検索してそのis_staffフラグが1に設定されていることを確認します。これでようやくadminサイトにログインできました。

2
user1330974

つかいます

python manage.py dumpdata

それからあなたがユーザー名を見つける最後を見てください

0
donald duck

これを行う2つの方法:

changepassword管理コマンド

(env) $ python manage.py changepassword <username>

または、次のようにDjango-admin Shellを使用して、いくつかの回答を展開しますが、拡張ユーザーモデルで機能します。

(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='[email protected]')
>>> user.is_staff = True
>>> user.save()
>>> exit()

N.B。なぜこの答えにこの質問に答えたのですか?

前述のように、User = get_user_model()は独自のカスタムUserモデルで機能するためです。 from Django.contrib.auth.models import Userを使用してからUser.objects.get(username='username')を使用すると、次のエラーがスローされる場合があります。

AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'
0

python manage.py changepasswordユーザー名

0
Basant Rules

管理者を忘れた場合は、使用して新しいユーザーを作成する必要があります

python manage.py createsuperuser <username>

パスワードにはCLIコマンドchangepasswordがあり、Djangoにはユーザーパスワードを変更します

python manage.py changepassword <username>

OR

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()