DEV Community

loading...
Cover image for Simple Guide for Django Admin Interface

Simple Guide for Django Admin Interface

Sachin Chaurasiya
A passionate developer who love to connect with people to share ideas and knowledge.
Originally published at rrtutors.com Updated on ・3 min read

Building a Full Stack Application is challenging and fun. By building the full stack application we get to learn so many things like database, routing, template, etc.
But there the one most important thing we get to learn is managing data with the help of an admin panel or admin interface.

Coding for the Admin interface is quite time consuming and take a lot of efforts. also while coding for the admin interface we need to take care of securities and permissions. we would require to write middlewares and validation.

Nowadays technologies growing rapidly and come with out of the box features which makes the developers life easier. so Django also comes with a feature Admin Interface to make developers life a lot easier.

So, in this post, we will discuss the Django admin interface.

  • What is Django Admin Interface
  • How to access the Admin interface
  • How To register model to the admin interface
  • How to unregister model from the admin interface
  • Customizing Django Admin interface

What is Django Admin Interface

The admin interface is a built-in module in Django which is design for executing admin related operation that includes reading, writing, updating and deleting. from this interface, the admin can manage users and permissions related to users.
The exciting thing about this interface is that it is highly customizable. we can customize this as we want.

How to access the Admin interface

When we create a Django project the admin interface is by default included in INSTALLED_APPS.

django admin interface.png

To access This admin interface on the browser write /admin at localhost:8000/admin.

django admin interface.png

You will get the Above Result and it will ask you for admin credentials to login into it. if you have Admin credentials just log in and if don't then you need to create one.

You can create one by executing this command on your terminal.

/> python manage.py createsuperuser
Enter fullscreen mode Exit fullscreen mode

after executing the above command it will prompt you for some information like Email Address, username, password and confirm password. it will create an admin user for you and now you can log in using these credentials.

django admin interface (2).png

As you can see by default it includes only two models or we can say tables that is users and groups. How to include our own models or tables into this interface? let's discuss this question in the next section.

How To register model to the admin interface

There are different approach to register models to the Django interface.

  • simple admin.site.register method
  • using register decorator with ModelAdmin object

Let say we have two models named Author and Book.

  • Simple admin.site.register method
from django.contrib import admin
from .models import Author, Book

admin.site.register(Author)
admin.site.register(Book)

Enter fullscreen mode Exit fullscreen mode
  • using register decorator with ModelAdmin object
from django.contrib import admin
from .models import Author, Book

@admin.register(Author)
class AuthorAdmin(admin.ModelAdmin):
    pass

@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
    pass

Enter fullscreen mode Exit fullscreen mode

How to unregister model from the admin interface

Removing or unregistering the model from the admin interface is very simple you have to just write a single line of code.

from django.contrib import admin
from .models import Author, Book

admin.site.unregister(Author)
admin.site.unregister(Book)

Enter fullscreen mode Exit fullscreen mode

Customizing Django Admin interface

Earlier I have mentioned that the Admin interface is highly customizable. so let's customize our admin interface.

Changing Django administration text, index title and site title

 admin.site.site_header = "BookStore Admin"
 admin.site.site_title = "BookStore Admin Portal"
 admin.site.index_title = "Welcome to BookStore Admin Portal"
Enter fullscreen mode Exit fullscreen mode

Changing Models default list display, search fields, ordering and list_filters.

from django.contrib import admin
from .models import Author, Book

@admin.register(Author)
class AuthorAdmin(admin.ModelAdmin):
     list_display = ('name','email','is_verified')
     list_filter = ('name','email')
     search_fields = ('name', 'joined_date')
     ordering = ('-joined_date',)

@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
     list_display = ('title','ISBN_NO','author_name')
     list_filter = ('title','ISBN_NO','author_name')
     search_fields = ('title','ISBN_NO','author_name')
     ordering = ('-created_at',)

Enter fullscreen mode Exit fullscreen mode

These are the basics of customization and There are tons of other stuff that we can customize.

Django has a very vast community and there is some awesome developer who has created third party packages to customize Django.

One of my Favorite ones is Django-Jazzmin which is a drop-in app with plenty of things you can easily customize, including a built-in UI customizer.

Thank You for Reading🙂. If you have any Suggestions or Query then let me know in the comment section.

Discussion (0)