Saya menggunakan Django (versi 1.3) dan lupa nama pengguna dan kata sandi admin. Bagaimana cara mereset keduanya?
Dan apakah mungkin untuk membuat pengguna normal menjadi admin, dan kemudian menghapus status admin?
python manage.py changepassword <user_name>
manage.py createsuperuser
untuk membuat superuser ke-2, dan kemudian melihat daftar Pengguna untuk menemukan yang asli. Kemudian masuk sebagai yang asli dan hapus superuser baru.python manage.py createsuperuser
akan membuat superuser lain, Anda dapat masuk ke admin dan mengingat kembali nama pengguna Anda.Untuk memberikan hak pengguna normal, buka shell dengan
python manage.py shell
dan coba:sumber
user.is_staff = True
Anda dapat mencoba melalui konsol:
kemudian gunakan skrip berikut di shell
akan mencantumkan Anda semua pengguna super di sistem. jika Anda mengenali nama pengguna Anda dari daftar:
dan Anda menetapkan kata sandi baru (:
sumber
User.objects.filter(is_superuser=True)
pip install django-extensions
, tambahkaninstalled apps
dan jalankan./manage.py shell_plus
. TheUser
kelas akan tersedia dan Anda bisapassword-change
.Anda dapat membuat superuser baru dengan
createsuperuser
perintah.sumber
Ini pertanyaan yang sangat bagus.
python manage.py changepassword user_name
Contoh: -
sumber
setup baru harus terlebih dahulu dijalankan
python manage.py createsuperuser
untuk membuat pengguna. Sepertinya tidak ada kata sandi nama pengguna default untuk masuk ke admin.sumber
Salah satu cara terbaik untuk mengambil nama pengguna dan kata sandi adalah melihat dan memperbaruinya. Model Pengguna menyediakan cara yang sempurna untuk melakukannya.
Dalam hal ini, saya menggunakan Django 1.9
Cetak daftar pengguna Untuk pengguna Python 2 gunakan perintah "cetak pengguna" Untuk pengguna Python 3 gunakan perintah "print (pengguna)" Pengguna pertama biasanya adalah admin.
Pilih pengguna yang ingin Anda ganti kata sandi mis
"user = users[0]"
Atur kata sandi
user.set_password('name_of_the_new_password_for_user_selected')
Simpan kata sandi baru
"user.save()"
Mulai server dan masuk menggunakan nama pengguna dan kata sandi yang diperbarui.
sumber
manage.py changepassword
adalah Anda tidak terbatas pada kata sandi apa yang dapat atau tidak dapat Anda gunakan - tidak lebih mirip dengan omong kosong nama pengguna. (Ini di lingkungan dev saya. Saya tidak menganjurkan kata sandi yang lebih lemah. Anda harus selalu menggunakan kata sandi yang kuat di prod.)Anda mungkin juga salah menjawab pertanyaan pengaturan dan tidak memiliki anggota staf. Dalam hal ini pergilah ke postgres:
Untuk memperbaikinya, edit secara langsung:
sumber
Dua cara untuk melakukan ini:
The
changepassword
perintah manajemen :Atau (yang diperluas pada beberapa jawaban, tetapi berfungsi untuk model Pengguna yang diperluas) menggunakan shell Django-admin sebagai berikut:
Ini akan memunculkan prompt perintah shell sebagai berikut:
Maka Anda ingin yang berikut ini:
NB Mengapa saya menjawab pertanyaan ini dengan jawaban ini?
Karena, sebagaimana disebutkan,
User = get_user_model()
akan bekerja untukUser
model kustom Anda sendiri . Menggunakanfrom django.contrib.auth.models import User
kemudianUser.objects.get(username='username')
dapat menimbulkan kesalahan berikut:sumber
Jika Anda lupa membuat admin, pertama-tama buat satu dengan
createsuperuser
perintahmanage.py
lalu ganti kata sandi.sumber
Anda dapat mencoba ini:
1. Ubah kata sandi Superuser tanpa konsol
2. Ubah kata sandi Superuser melalui konsol
sumber
Jika Anda tidak tahu nama pengguna yang dibuat di sini. Anda bisa mendapatkan pengguna seperti yang dijelaskan oleh @FallenAngel di atas.
Namun jika Anda membuat model pengguna independen Anda. Kasus sederhana adalah ketika Anda ingin menggunakan email sebagai nama pengguna alih-alih nama pengguna default. Dalam hal model pengguna Anda tinggal di suatu tempat seperti your_accounts_app.models maka solusi di atas tidak akan berfungsi. Dalam hal ini Anda bisa menggunakan metode get_user_model
sumber
jika Anda lupa admin Anda maka Anda perlu membuat pengguna baru dengan menggunakan
dan untuk kata sandi ada perintah CLI
changepassword
untuk Django untuk mengubah kata sandi penggunaATAU
ATAU Jalankan kode ini dalam Django env
sumber
Hal lain yang perlu diperhatikan adalah mengatur status pengguna Anda
is_staff
sebagai aktif. Setidaknya, itulah yang membuatnya bekerja untuk saya. Untuk lebih detail, saya membuat yang lainsuperuser
seperti yang dijelaskan orang di atas. Lalu saya pergi ke tabel databaseauth_user
dan mencari nama pengguna itu untuk memastikanis_staff
flagnya disetel ke1
. Itu akhirnya memungkinkan saya untuk masuk keadmin
situs.sumber
Buat superuser baru dengan perintah "python manage.py createuperuser". Masuk sebagai pengguna super baru. Klik tautan 'pengguna'. Kemudian klik pada pengguna yang ingin Anda hapus. klik hapus pengguna di akhir halaman formulir.
Catatan - Proses di atas akan membuat perubahan pada log aktivitas yang dilakukan oleh pengguna tertentu.
sumber
python manage.py nama pengguna changepassword
sumber
menggunakan
kemudian lihat pada akhirnya Anda akan menemukan nama pengguna
sumber
Cara terbaik adalah pergi saja ke terminal dan ketik
dan masukkan kata sandi dan nama pengguna lain lagi tetapi Anda akan kehilangan sebagian dari profil yang Anda buat sebelumnya dalam banyak kasus.
sumber
Saya pikir, Cara yang lebih baik Di baris perintah
sumber
Cukup mudah ketikkan perintah ini di commandline Anda
python manage.py changepassword yourusername
sumber
Cara lain untuk mendapatkan nama pengguna (dan sebagian besar informasi) adalah mengakses database secara langsung dan membaca info dari tabel.
sumber