Django

Customize Admin Interface

πŸ“Œ Introduction

By default, Django admin shows very basic data.

But in real applications, we need:

  • multiple columns
  • search functionality
  • filters for quick navigation

πŸ‘‰ Django provides customization options in admin.py.


🎯 Program Statement

πŸ‘‰ Customize admin interface using list_display, search_fields, and filters.


🧠 Concept

This program uses:

  • ModelAdmin class
  • list_display β†’ show columns
  • search_fields β†’ search box
  • list_filter β†’ sidebar filters

βš™οΈ Step 1: Model (Same as before)


πŸ“ File: models.py

class Student(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
course = models.CharField(max_length=100)
email = models.EmailField(unique=True)

def __str__(self):
return self.name

βš™οΈ Step 2: Customize Admin


πŸ“ File: admin.py

πŸ”Ή Path:

myproject/myapp/admin.py

πŸ”Ή Code:

from django.contrib import admin
from .models import Student

class StudentAdmin(admin.ModelAdmin):
list_display = ('id', 'name', 'age', 'course', 'email')
search_fields = ('name', 'course', 'email')
list_filter = ('course', 'age')

admin.site.register(Student, StudentAdmin)

🧠 Explanation


πŸ”Ή list_display

list_display = ('id', 'name', 'age', 'course', 'email')

πŸ‘‰ Shows multiple columns in admin list view


πŸ”Ή search_fields

search_fields = ('name', 'course', 'email')

πŸ‘‰ Adds search box in admin
πŸ‘‰ Works like icontains


πŸ”Ή list_filter

list_filter = ('course', 'age')

πŸ‘‰ Adds filters in sidebar
πŸ‘‰ Helps filter records quickly


βš™οΈ Step 3: Run Server

python manage.py runserver

βš™οΈ Step 4: Open Admin Panel

πŸ‘‰ http://127.0.0.1:8000/admin/


🌐 Step 5: Output

πŸ”Ή Student List View:

You will now see:

IDNameAgeCourseEmail

πŸ”Ή Search Box

πŸ‘‰ At top of admin page

Search example:

Kavita

πŸ”Ή Filters (Sidebar)

  • Course filter
  • Age filter

🧠 How It Works

  1. ModelAdmin customizes admin interface
  2. list_display controls columns
  3. search_fields enables search
  4. list_filter adds filtering options

πŸ”₯ Key Concepts


ModelAdmin Class

class StudentAdmin(admin.ModelAdmin):

Used to customize admin.


Register with Custom Admin

admin.site.register(Student, StudentAdmin)

Display Fields

list_display = (...)

Enable Search

search_fields = (...)

Add Filters

list_filter = (...)

⚠️ Common Errors


❌ Forgot to use ModelAdmin

Wrong:

admin.site.register(Student)

Correct:

admin.site.register(Student, StudentAdmin)

❌ Field name mismatch

Fields must match model:

'name', 'age', 'course'

❌ Search not working

Ensure fields are text fields or valid searchable fields


❌ Filters not showing

Check:

list_filter = (...)

πŸ§ͺ Practice Questions

  1. Add ordering = ('name',)
  2. Add list_display_links
  3. Add readonly_fields
  4. Add filter for email
  5. Display computed field

🎀 Viva Questions & Answers


1. What is ModelAdmin?

ModelAdmin is a class used to customize how a model appears in Django admin.


2. What is list_display?

It specifies which fields should be displayed as columns in admin list view.


3. What is search_fields?

It enables a search box in admin to search records based on specified fields.


4. What is list_filter?

It adds filter options in admin sidebar to filter records.


5. Can we use multiple fields in search?

Yes, we can specify multiple fields in search_fields.


6. What happens if we don’t customize admin?

Only basic view is shown without advanced features.


7. Why is admin customization important?

It improves usability and makes data management easier.


8. Can we filter numeric fields?

Yes, numeric fields like age can also be used in filters.


9. Can we display computed fields?

Yes, by defining custom methods in ModelAdmin.


10. Why is this program important?

It enhances admin functionality for real-world applications.


πŸ”— Navigation

πŸ‘‰ Next Post: Create Superuser and Perform Database Operations through Admin Panel
πŸ‘‰ Back to List: Django Programs (60 Questions with Solutions)


Further Reading

Introduction to Django Framework and its Features

Django Practice Exercise

Examples of Array Functions in PHP

Basic Programs in PHP

Registration Form Using PDO in PHP

Inserting Information from Multiple CheckBox Selection in a Database Table in PHP

programmingempire

princites.com

You may also like...

Leave a Reply

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