π 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:
ModelAdminclasslist_displayβ show columnssearch_fieldsβ search boxlist_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:
| ID | Name | Age | Course |
|---|
πΉ Search Box
π At top of admin page
Search example:
Kavita
πΉ Filters (Sidebar)
- Course filter
- Age filter
π§ How It Works
ModelAdmincustomizes admin interfacelist_displaycontrols columnssearch_fieldsenables searchlist_filteradds 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
- Add
ordering = ('name',) - Add
list_display_links - Add
readonly_fields - Add filter for email
- 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
Examples of Array Functions in PHP
Registration Form Using PDO in PHP
Inserting Information from Multiple CheckBox Selection in a Database Table in PHP
- Angular
- ASP.NET
- C
- C#
- C++
- CSS
- Dot Net Framework
- HTML
- IoT
- Java
- JavaScript
- Kotlin
- PHP
- Power Bi
- Python
- Scratch 3.0
- TypeScript
- VB.NET
