Yanıtlar:
python manage.py changepassword <user_name>
manage.py createsuperuser
2. 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 shell
ve ş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 apps
ve çalıştırın ./manage.py shell_plus
. User
Sınıf mevcut olacak ve mümkün password-change
.
createsuperuser
Komut 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 changepassword
hangi 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 User
modelleriniz için çalışacaktır . Kullanımı from django.contrib.auth.models import User
daha 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 createsuperuser
komutla bir tane oluşturun , manage.py
ardı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_staff
aktif olarak ayarlamaktır . En azından benim için işe yarayan şey bu. Daha fazla ayrıntı için, superuser
insanların yukarıda açıkladığı gibi bir tane daha oluşturdum . Sonra veritabanı tablosuna gidip bayrağının ayarlandığından auth_user
emin olmak için bu kullanıcı adını is_staff
ararım 1
. Sonunda admin
siteye 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ı