[Fixed]-Django: admin interface: how to change user password

6👍

This answer is just an extension of answer by @kunal Sharma

To change user password from Django admin

Go into the user

enter image description here

and click this form, and a form below will be shown, change password there

enter image description here

18👍

Django does not store raw (clear text) passwords on the user model, but only a hash (see the documentation of how passwords are managed for full details). Because of this, do not attempt to manipulate the password attribute of the user directly. This is why a helper function is used when creating a user.

To change a user’s password, you have several options:

manage.py changepassword *username* offers a method of changing a user’s password from the command line. It prompts you to change the password of a given user which you must enter twice. If they both match, the new password will be changed immediately. If you do not supply a user, the command will attempt to change the password whose username matches the current system user.

You can also change a password programmatically, using set_password():

from django.contrib.auth.models import User
u = User.objects.get(username='john')
u.set_password('new password')
u.save()

If you have the Django admin installed, you can also change user’s passwords on the authentication system’s admin pages.
Django also provides views and forms that may be used to allow users to change their own passwords.

Changing a user’s password will log out all their sessions. See Session invalidation on password change for details.

13👍

We can reset other user password from Django admin interface by adding UserAdmin in admin.py file. Used Django 3.1 for the example.

admin.py

from django.contrib import admin
from .models.models import User
from django.contrib.auth.admin import UserAdmin

admin.site.register(User, UserAdmin)

Then we will able to see the below section in the user edit page of Django admin interface.

enter image description here

By clicking on the this form we can go to the reset password form.

enter image description here

6👍

In your admin.py file, you can register a UserAdmin to your User model like so:

from django.contrib.auth.admin import UserAdmin as DjangoUserAdmin
from django.contrib import admin
from <my-app> import models    

@admin.register(models.User)
class UserAdmin(DjangoUserAdmin):
    
    # extra logic:
    ...
👤Daniel

-1👍

Run these commands in your CMD and then set change any user password:

python manage.py shell
from django.contrib.auth.models import
u=User.objects.get(username="user.name")
u
u.set_password("mynewpasssword")
u.save

Leave a comment