February 14th 2020 475
In this tutorial, we will learn what is Admin in Django and how to create a superuser account for your website and access the admin interface from the browser.
So in our previous TUTORIAL, we have successfully created our URLs. Let's create a Post model and register it to the Admin interface using admin.py file and access the Post model from the admin interface, which lets us perform basic CRUD operation.
One of the main features of Django is its Admin Interface. Django provides a ready-to-use user interface for administrative activities. An admin interface is important for a web project. Django automatically generates admin UI based on your project models.
First, open admin.py in the catalog application (account/admin.py). It currently looks like this — note that it already imports
from django.contrib import admin # Register your models here.
In our case, we have created a User model which is a built-in Django model so the User model is by default register in the Admin interface. So lets first create another model in
accounts/model.py file. Copy the below code in the existing
from django.db.models.deletion import CASCADE class Post(models.Model): pic = models.ImageField(upload_to="images/",null=True, blank=True) subject = models.TextField(max_length=200) msg = models.TextField(null=True, blank=True) cr_date = models.DateTimeField(auto_now_add=True) count = models.IntegerField(default=0) comment_count = models.IntegerField(default=0) upload_by = models.ForeignKey(to=User, on_delete= CASCADE,null=True, blank=True) def __str__(self): return "%s" % (self.subject)
Now run the migrations command:
python manage.py makemigrations account
altaf@kali:~/Desktop/Tutorial/social$ python manage.py makemigrations account Migrations for 'account': account/migrations/0002_post.py - Create model Post
python manage.py migrate
altaf@kali:~/Desktop/Tutorial/social$ python manage.py migrate Operations to perform: Apply all migrations: account, admin, auth, contenttypes, sessions Running migrations: Applying account.0002_post... OK
Now, Register the models by copying the following text into the bottom of the file. This code simply imports the models and then calls
admin.site.register to register each of them.
from .models import Post admin.site.register(Post)
Creating a superuser
In order to log into the admin site, we need a user account. In order to view and create records we also need this user to have permission to manage all our objects. You can create a
"superuser" account that has full access to the site and all needed permissions using
manage.py. You can create multiple superuser account.
Run the below command to create a superuser account:
python manage.py createsuperuser
You will be prompted to enter a username, email address, and strong password.
altaf@kali:~/Desktop/Tutorial/social$ python manage.py createsuperuser Username: root Email address: email@example.com Password: Password (again): The password is too similar to the email address. This password is too short. It must contain at least 8 characters. This password is too common. Bypass password validation and create user anyway? [y/N]: y Superuser created successfully.
Now run the server again if it is not running:
python manage.py runserver
Logging in and using the site
To login to the site, open the /admin URL i.e http://127.0.0.1:8000/admin and enter your new superuser userid and password credentials.
After successfully logged in, this part of the site displays all our models, grouped by installed application. You can click on a model name to go to a screen that lists all its associated records, and you can further click on those records to edit them.
You can also directly click the Add link next to each model to start creating a record of that type. You can also delete records from the admin interface. Basically this interface gives you the ability to do at least the "CRUD" (Create, Read, Update, Delete) operations on your models.
Explore Admin Interface more on your own it is very cool and easy to use.