Yanıtlar:
python manage.py changepassword <user_name>
manage.py createsuperuser2. bir süper kullanıcı oluşturmak ve ardından orijinali bulmak için Kullanıcıların listesini görüntülemek için bunu yapabilirsiniz . Ardından orijinal olarak oturum açın ve yeni süper kullanıcıyı silin.
python manage.py createsuperuser başka bir süper kullanıcı oluşturacaksa, yönetici oturum açıp kullanıcı adınızı hatırlatabilirsiniz.Normal kullanıcı ayrıcalıkları vermek için, ile bir kabuk açın python manage.py shellve şunu deneyin:
from django.contrib.auth.models import User
user = User.objects.get(username='normaluser')
user.is_superuser = True
user.save()
user.is_staff = True
Konsolu deneyebilirsiniz:
python manage.py shell
sonra kabukta aşağıdaki komut dosyasını kullanın
from django.contrib.auth.models import User
User.objects.filter(is_superuser=True)
sistemdeki tüm süper kullanıcıları listeleyecektir. listeden yur kullanıcı adınızı biliyorsanız:
usr = User.objects.get(username='your username')
usr.set_password('raw password')
usr.save()
ve yeni bir şifre belirlersiniz (:
User.objects.filter(is_superuser=True)
pip install django-extensions, ekleyin installed appsve çalıştırın ./manage.py shell_plus. UserSınıf mevcut olacak ve mümkün password-change.
createsuperuserKomut ile yeni bir süper kullanıcı oluşturabilirsiniz .
Kullanıcı adını ve şifreyi almanın en iyi yollarından biri onları görüntülemek ve güncellemektir. Kullanıcı Modeli bunu yapmak için mükemmel bir yol sağlar.
Kullanıcıların listesini yazdırma Python 2 kullanıcıları için "print users" komutunu kullanın Python 3 kullanıcıları için "print (users)" komutunu kullanın İlk kullanıcı genellikle admin'dir.
Parolasını değiştirmek istediğiniz kullanıcıyı seçin, ör.
"user = users[0]"
Parolayı belirleyin
user.set_password('name_of_the_new_password_for_user_selected')
Yeni şifreyi kaydet
"user.save()"
Sunucuyu başlatın ve kullanıcı adını ve güncellenmiş şifreyi kullanarak oturum açın.
manage.py changepasswordhangi parolaları kullanabileceğiniz veya kullanamayacağınızla sınırlı kalmamanızdır - artık kullanıcı adı bokuna çok benzemez. (Bu benim geliştirme ortamımda. Daha zayıf parolaları savunmuyorum. Her zaman
Ayrıca bir kurulum sorusunu yanlış yanıtlamış olabilirsiniz ve sıfır personeliniz olabilir. Bu durumda postgres'e gidin:
obvioustest=# \c [yourdatabasename]
obvioustest=# \x
obvioustest=# select * from auth_user;
-[ RECORD 1 ]+-------------
id | 1
is_superuser | f
is_staff | f
...
Düzeltmek için doğrudan düzenleyin:
update auth_user set is_staff='true' where id=1;
Bunu yapmanın iki yolu:
changepassword Yönetim komutu :
(env) $ python manage.py changepassword <username>
Veya (birkaç cevap üzerine genişler, ancak herhangi bir genişletilmiş Kullanıcı modeli için çalışır) django-admin kabuğunu kullanarak :
(env) $ python manage.py shell
Bu, shell komut istemini aşağıdaki gibi getirmelidir:
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)
>>>
O zaman aşağıdakileri istersiniz:
>>> 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 Bu soruyu neden bu cevapla cevapladım?
Çünkü, belirtildiği gibi, User = get_user_model()kendi özel Usermodelleriniz için çalışacaktır . Kullanımı from django.contrib.auth.models import Userdaha sonra User.objects.get(username='username')aşağıdaki hatayı atmak olabilir:
AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'
Yönetici kullanıcı oluşturmayı unuttuysanız, önce createsuperuserkomutla bir tane oluşturun , manage.pyardından şifreyi değiştirin.
Bunu deneyebilirsiniz:
1. konsol olmadan süper kullanıcı şifresini değiştirme
python manage.py changepassword <username>
Konsol üzerinden Superuser şifresini değiştirin
Burada oluşturulan kullanıcı adlarını bilmiyorsanız. Kullanıcıları yukarıda @FallenAngel tarafından açıklandığı gibi alabilirsiniz.
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
Ancak bağımsız kullanıcı modelinizi yaratmanız durumunda. Basit bir durum, e-postayı varsayılan kullanıcı adı yerine kullanıcı adı olarak kullanmak istediğiniz zamandır. Bu durumda, kullanıcı modeliniz your_accounts_app.models gibi bir yerde yaşarsa, yukarıdaki çözüm işe yaramaz. Bu durumda bunun yerine get_user_model yöntemini kullanabilirsiniz
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
yöneticinizi unutursanız şunu kullanarak yeni kullanıcı oluşturmanız gerekir:
python manage.py createsuperuser <username>
ve parola changepassword için django'nun kullanıcı parolasını değiştirmesi için CLI komutu vardır
python manage.py changepassword <username>
VEYA
django-admin changepassword <username>
VEYA Bu kodu Django env'de çalıştır
from django.contrib.auth.models import User
u = User.objects.get(username='john')
u.set_password('new password')
u.save()
Dikkate değer başka bir şey, kullanıcı durumunuzu is_staffaktif olarak ayarlamaktır . En azından benim için işe yarayan şey bu. Daha fazla ayrıntı için, superuserinsanların yukarıda açıkladığı gibi bir tane daha oluşturdum . Sonra veritabanı tablosuna gidip bayrağının ayarlandığından auth_useremin olmak için bu kullanıcı adını is_staffararım 1. Sonunda adminsiteye giriş yapmama izin verdi .
"Python manage.py createuperuser" komutuyla yeni bir süper kullanıcı oluşturun. Yeni süper kullanıcı olarak giriş yapın. 'Kullanıcılar' bağlantısını tıklayın. Ardından silmek istediğiniz kullanıcıyı tıklayın. form sayfasının sonundaki kullanıcıyı sil'i tıklayın.
Not - Yukarıdaki işlem, söz konusu kullanıcı tarafından yapılan etkinlik günlüklerinde değişiklik yapacaktır.
python manage.py changeparola kullanıcı adı
kullanım
python manage.py dumpdata
o zaman sonuna bak kullanıcı adını bulacaksınız
Bence, daha iyi bir yol Komut satırında
python manage.py create süper kullanıcı