जवाबों:
python manage.py changepassword <user_name>
manage.py createsuperuser
दूसरा सुपरयुसर बनाने के लिए कर सकते हैं , और फिर मूल खोजने के लिए उपयोगकर्ताओं की सूची देखें। फिर मूल एक के रूप में लॉग इन करें और नए सुपरयुसर को हटा दें।
python manage.py createsuperuser
एक और सुपरयुसर बनाएंगे, आप व्यवस्थापक में प्रवेश करने में सक्षम होंगे और अपने उपयोगकर्ता नाम को हटा सकते हैं।एक सामान्य उपयोगकर्ता विशेषाधिकार देने के लिए, इसके साथ एक खोल खोलें 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)
आपको सिस्टम पर सभी सुपर उपयोगकर्ताओं की सूची देगा। यदि आप सूची से yur उपयोगकर्ता नाम पहचानते हैं:
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
कमांड के साथ एक नया सुपरयुसर बना सकते हैं ।
उपयोगकर्ता नाम और पासवर्ड को पुनः प्राप्त करने का एक सबसे अच्छा तरीका उन्हें देखना और अपडेट करना है। उपयोगकर्ता मॉडल ऐसा करने का एक सही तरीका प्रदान करता है।
उपयोगकर्ताओं की एक सूची प्रिंट करें पायथन 2 के लिए उपयोगकर्ता "प्रिंट उपयोगकर्ताओं" कमांड का उपयोग करते हैं। पायथन 3 उपयोगकर्ताओं के लिए कमांड "प्रिंट (उपयोगकर्ता)" का उपयोग करते हैं पहला उपयोगकर्ता आमतौर पर व्यवस्थापक है।
उस उपयोगकर्ता का चयन करें जिसे आप अपना पासवर्ड बदलना चाहते हैं
"user = users[0]"
पासवर्ड सेट करें
user.set_password('name_of_the_new_password_for_user_selected')
नया पासवर्ड सेव करें
"user.save()"
सर्वर शुरू करें और उपयोगकर्ता नाम और अपडेट किए गए पासवर्ड का उपयोग करके लॉग इन करें।
manage.py changepassword
है कि आप उन पासवर्डों के लिए प्रतिबंधित नहीं हैं जिन्हें आप उपयोग कर सकते हैं या नहीं कर सकते हैं - उपयोगकर्ता नाम बकवास के समान नहीं। (यह मेरे देव वातावरण में है। मैं कमजोर पासवर्ड की वकालत नहीं कर रहा हूं। आपको हमेशा ठेस
आपने सेटअप प्रश्न का उत्तर गलत भी दिया होगा और शून्य स्टाफ सदस्य भी हो सकते हैं। किस स्थिति में पोस्ट करने के लिए सिर:
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;
ऐसा करने के दो तरीके:
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
उसके बाद User.objects.get(username='username')
निम्न त्रुटि का उपयोग कर सकते हैं:
AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'
यदि आप व्यवस्थापक उपयोगकर्ता बनाना भूल गए हैं, तो पहले 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
हालाँकि इस घटना में कि आपने अपना स्वतंत्र उपयोगकर्ता मॉडल बनाया है। एक साधारण मामला तब होता है जब आप डिफ़ॉल्ट उपयोगकर्ता नाम के बजाय उपयोगकर्ता नाम के रूप में ईमेल का उपयोग करना चाहते हैं। जिस स्थिति में आपका उपयोगकर्ता मॉडल कहीं और रहता है जैसे कि आपका _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()
एक और बात जो ध्यान देने योग्य है, वह है कि आपके उपयोगकर्ता की स्थिति is_staff
को सक्रिय करना। कम से कम, यह वही है जो मेरे लिए काम करता है। अधिक विस्तार के लिए, मैंने एक और बनाया, superuser
जैसा कि लोगों ने ऊपर बताया है। फिर मैं डेटाबेस टेबल पर जाता हूं auth_user
और यह सुनिश्चित करने के लिए उस उपयोगकर्ता नाम की खोज करता हूं कि उसका is_staff
ध्वज सेट है 1
। अंत में मुझे admin
साइट में लॉग इन करने की अनुमति दी ।
"Python manage.py createuperuser" कमांड के साथ एक नया सुपरयुसर बनाएं। नए सुपर यूजर के रूप में लॉगिन करें। 'उपयोगकर्ता' लिंक पर क्लिक करें। फिर उस उपयोगकर्ता पर क्लिक करें जिसे आप हटाना चाहते हैं। फॉर्म पेज के अंत में डिलीट यूजर पर क्लिक करें।
नोट - उपरोक्त प्रक्रिया उस विशेष उपयोगकर्ता द्वारा की गई गतिविधि लॉग में बदलाव करेगी।
उपयोग
python manage.py dddata
फिर अंत में आपको उपयोगकर्ता नाम मिलेगा
मुझे लगता है, कमांड लाइन में बेहतर तरीका है
python manage.py createuperuser बनाता है