Django व्यवस्थापक पासवर्ड कैसे रीसेट करें?


451

मैं Django (संस्करण 1.3) का उपयोग कर रहा हूं और व्यवस्थापक उपयोगकर्ता नाम और पासवर्ड दोनों को भूल गया हूं। दोनों को कैसे रीसेट करें?

और क्या सामान्य उपयोगकर्ता को व्यवस्थापक में बनाना संभव है, और फिर व्यवस्थापक स्थिति को हटा दें?

जवाबों:


785
python manage.py changepassword <user_name>

डॉक्स देखें


7
बस एहसास हुआ कि आपने कहा था कि आप उपयोगकर्ता नाम भूल गए हैं ... 'व्यवस्थापक' मेरे उत्तर में उपयोगकर्ता नाम होने के नाते बहुत मदद नहीं करेगा!
जेम्स

8
@ user794916 यदि उपयोगकर्ता नाम याद नहीं है तो यह अजीब विकल्प है। :-)
DrTyrsa

1
आप उपयोगकर्ता नाम को "व्यवस्थापक" से दूसरे उचित उपयोगकर्ता नाम में बदल सकते हैं। : D
mxi1

4
django का सबसे अच्छा। सब कुछ बस इतना आसान है
DMTintner

5
यदि आप उपयोगकर्ता नाम भूल गए हैं, तो आप manage.py createsuperuserदूसरा सुपरयुसर बनाने के लिए कर सकते हैं , और फिर मूल खोजने के लिए उपयोगकर्ताओं की सूची देखें। फिर मूल एक के रूप में लॉग इन करें और नए सुपरयुसर को हटा दें।
शाम

173
  1. python manage.py createsuperuser एक और सुपरयुसर बनाएंगे, आप व्यवस्थापक में प्रवेश करने में सक्षम होंगे और अपने उपयोगकर्ता नाम को हटा सकते हैं।
  2. हाँ क्यों नहीं।

एक सामान्य उपयोगकर्ता विशेषाधिकार देने के लिए, इसके साथ एक खोल खोलें python manage.py shellऔर कोशिश करें:

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

यदि यह संभव है, तो यह कैसे करना है?
IAMH1kc

इस दृष्टिकोण के साथ ऐसा लगता है कि उपयोगकर्ता django admin
keul

3
@LucaFabbri को भी आपको सेट करना होगाuser.is_staff = True
हारून मैकमिलिन

122

आप कंसोल के माध्यम से कोशिश कर सकते हैं:

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

और आपने एक नया पासवर्ड सेट किया है:


12
User.objects.filter(is_superuser=True)
DrTyrsa

pip install django-extensions, इसे जोड़ें installed appsऔर चलाएं ./manage.py shell_plusUserवर्ग उपलब्ध हो जाएगा और आप कर सकते हैं password-change
तिमो

यह विधि उपयोगकर्ता को किसी भी सत्यापन के बिना किसी भी पासवर्ड को सेट करने की अनुमति देती है। आप इस प्रकार एक बहुत ही सरल पासवर्ड सेट कर सकते हैं (केवल परीक्षण के प्रयोजनों के लिए), जिसे स्वीकृत उत्तर पद्धति अनुमति नहीं देती है।
गौतम जे


14

यह बहुत अच्छा सवाल है।

python user_name को बदलने का प्रबंध करेगा

उदाहरण :-

python manage.py changepassword mickey

11

नया सेटअप उपयोगकर्ता बनाने के लिए पहले चलना चाहिए python manage.py createsuperuser। ऐसा लगता है कि व्यवस्थापक में लॉगिन करने के लिए कोई डिफ़ॉल्ट उपयोगकर्ता नाम पासवर्ड नहीं है।


9

उपयोगकर्ता नाम और पासवर्ड को पुनः प्राप्त करने का एक सबसे अच्छा तरीका उन्हें देखना और अपडेट करना है। उपयोगकर्ता मॉडल ऐसा करने का एक सही तरीका प्रदान करता है।

इस मामले में, मैं Django 1.9 का उपयोग कर रहा हूं

  1. अपने रूट डायरेक्टरी में नेविगेट करें i, e। जहाँ आप "manage.py" फ़ाइल अपने कंसोल या अन्य एप्लिकेशन जैसे Git का उपयोग करके स्थित है।
  2. पायथन शेल को "python manage.py शेल" कमांड का उपयोग करके पुनः प्राप्त करें।
  3. "Django.contrib.auth.models आयात उपयोगकर्ता से निम्नलिखित कमांड टाइप करके उपयोगकर्ता मॉडल आयात करें"
  4. निम्नलिखित कमांड "users = User.objects.all ()" लिखकर सभी उपयोगकर्ताओं को प्राप्त करें
  5. उपयोगकर्ताओं की एक सूची प्रिंट करें पायथन 2 के लिए उपयोगकर्ता "प्रिंट उपयोगकर्ताओं" कमांड का उपयोग करते हैं। पायथन 3 उपयोगकर्ताओं के लिए कमांड "प्रिंट (उपयोगकर्ता)" का उपयोग करते हैं पहला उपयोगकर्ता आमतौर पर व्यवस्थापक है।

  6. उस उपयोगकर्ता का चयन करें जिसे आप अपना पासवर्ड बदलना चाहते हैं

    "user = users[0]"

  7. पासवर्ड सेट करें

    user.set_password('name_of_the_new_password_for_user_selected')

  8. नया पासवर्ड सेव करें

    "user.save()"

सर्वर शुरू करें और उपयोगकर्ता नाम और अपडेट किए गए पासवर्ड का उपयोग करके लॉग इन करें।


इस पद्धति का लाभ यह manage.py changepasswordहै कि आप उन पासवर्डों के लिए प्रतिबंधित नहीं हैं जिन्हें आप उपयोग कर सकते हैं या नहीं कर सकते हैं - उपयोगकर्ता नाम बकवास के समान नहीं। (यह मेरे देव वातावरण में है। मैं कमजोर पासवर्ड की वकालत नहीं कर रहा हूं। आपको हमेशा ठेस
पहुंचाने वाले

5

आपने सेटअप प्रश्न का उत्तर गलत भी दिया होगा और शून्य स्टाफ सदस्य भी हो सकते हैं। किस स्थिति में पोस्ट करने के लिए सिर:

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

ऐसा करने के दो तरीके:

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'

4

यदि आप व्यवस्थापक उपयोगकर्ता बनाना भूल गए हैं, तो पहले createsuperuserकमांड के साथ एक का निर्माण करें manage.pyफिर पासवर्ड बदलें।


4

आप यह कोशिश कर सकते हैं:

1. कंसोल के बिना सुपरसुअर पासवर्ड बदलें

python manage.py changepassword <username>

2. कंसोल के माध्यम से सुपरसुसर पासवर्ड बदलें

यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें


1
लिखित कोड के बजाय स्क्रीनशॉट का उपयोग करना बहुत बुरा अभ्यास है। Poeple आपके कोड को परीक्षण के लिए कॉपी-पेस्ट नहीं कर सकता है और यह इन-साईट-सर्च के लिए उपलब्ध नहीं है
FallenAngel

3

मामले में आप उपयोगकर्ता नाम नहीं जानते हैं जैसा कि यहां बनाया गया है। आप उपर्युक्त @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

3

यदि आप अपने व्यवस्थापक को भूल जाते हैं तो आपको उपयोग करके नए उपयोगकर्ता बनाने की आवश्यकता है

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

2

एक और बात जो ध्यान देने योग्य है, वह है कि आपके उपयोगकर्ता की स्थिति is_staffको सक्रिय करना। कम से कम, यह वही है जो मेरे लिए काम करता है। अधिक विस्तार के लिए, मैंने एक और बनाया, superuserजैसा कि लोगों ने ऊपर बताया है। फिर मैं डेटाबेस टेबल पर जाता हूं auth_userऔर यह सुनिश्चित करने के लिए उस उपयोगकर्ता नाम की खोज करता हूं कि उसका is_staffध्वज सेट है 1। अंत में मुझे adminसाइट में लॉग इन करने की अनुमति दी ।


2

"Python manage.py createuperuser" कमांड के साथ एक नया सुपरयुसर बनाएं। नए सुपर यूजर के रूप में लॉगिन करें। 'उपयोगकर्ता' लिंक पर क्लिक करें। फिर उस उपयोगकर्ता पर क्लिक करें जिसे आप हटाना चाहते हैं। फॉर्म पेज के अंत में डिलीट यूजर पर क्लिक करें।

नोट - उपरोक्त प्रक्रिया उस विशेष उपयोगकर्ता द्वारा की गई गतिविधि लॉग में बदलाव करेगी।




0

सबसे अच्छा तरीका है कि बस अपने टर्मिनल पर जाएं और टाइप करें

python manage.py createsuperuser

और फिर से एक और पासवर्ड और उपयोगकर्ता नाम डालें लेकिन यू आपके अधिकांश प्रोफाइल को खो देगा जो आपने ज्यादातर मामलों में बनाया है।



0

यह बहुत आसान है आप इस कमांड को yout कमांडलाइन में टाइप करें

अजगर प्रबंधन ओरेकल को बदलकर आपका नाम बदल देगा


-1

उपयोगकर्ता नाम (और अधिकांश जानकारी) प्राप्त करने का एक और तरीका है डेटाबेस को सीधे एक्सेस करना और टेबल से जानकारी पढ़ना।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.