How To Use The Django Admin Site To Create Auth User

Each Django project has an admin website. You can use this website to manage Django project auth user, user group and manage custom Django application’s models etc. This article will tell you how to login to Django project admin website and how to add auth user with it. The auth user is a built-in Django application which provide user authentication and authorization.

1. Create Django Admin Site SuperUser.

Django admin site should have one superuser. So after you create Django project, you should create the superuser for it first, then you can use this superuser to login to the admin site.

Follow below steps to create Django project admin site superuser.

  1. Open terminal and go to Django project folder.
  2. Then execute python3 manage.py createsuperuser to create the super user, the process is interactive, you need to provide superuser name, email and password in the process.
    > python3 manage.py createsuperuser
    bash -cl "/usr/bin/python3.6 /home/zhaosong/WorkSpace/Tool/pycharm-professional/pycharm-professional-2018.3.3/pycharm-2018.3.3/helpers/pycharm/django_manage.py createsuperuser /home/zhaosong/WorkSpace/Work/dev2qa.com-example-code/PythonPyCharmPoject/DjangoHelloWorld"
    File tracking disabled
    System check identified some issues:
    
    WARNINGS:
    ?: (urls.W001) Your URL pattern '^$' uses include with a route ending with a '$'. Remove the dollar from the route to avoid problems including URLs.
    Username (leave blank to use 'zhaosong'):  admin
    Email address:  [email protected]
    Warning: Password input may be echoed.
    Password:  ********
    Warning: Password input may be echoed.
    Password (again):  ********
    Superuser created successfully.
    
    Process finished with exit code 0
  3. Now you can browse the Django admin site with url http://127.0.0.1:8000/admin/. This url is defined in DjangoHelloWorld / DjangoHelloWorld / urls.py file as below. Then you can use the superuser name and password to login to it.
    pycharm django project files list

    urlpatterns = [
        path('admin/', admin.site.urls),
        ......
    ]

    django admin login page

2. Change Admin Site SuperUser Password.

If you forget the admin superuser password, you can execute below command to change it.

python3 manage.py changepassword admin

If you even forget the supperuser name, you can execute python3 manage.py createsuperuser script again to create another admin site superuser and use it.

If you really want to use the old admin user name as the superuser name, you can delete the DjangoHelloWorld / db.sqlite3 file and then recreate the same superuser again. But after that, you may need to run python3 manage.py migrate script to save the changes to sqlite database.

3. Add Staff User In Django Admin Site.

After you login to Django admin site, you can add auth user and group by click the Add link at the end of Users or Groups model.

django add user account page

The User model full class package path is django.contrib.auth.models.User and the Group model full class package path is django.contrib.auth.models.Group.

All these model mapped to related database tables, the default database is sqlite. User model map to db table auth_user, Group model map to db table auth_group. When you add a user, user data will be inserted in table auth_user.

django admin site auth tables

3.1 Add Auth User In Admin Site Steps.

  1. Click Add link after Users model.
  2. Input username, password then click Save button.
  3. But you need to edit the added user data again, to check the Staff status checkbox. If you do not check Staff status checkbox you may encounter error message like Please enter the correct username and password for a staff account. Note that both fields may be case-sensitive. when you use the newly added user to login to the admin site.
    edit django user account check staff status check box
    django user account login error because of not check staff status checkbox
  4. Now logout and use the new user account to login again successfully.
READ :   How To Create And Use Custom Model Managers In Django

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.