[Django]-How to add custom search box in Django-admin?

177👍

Use the search_fields attribute of the ModelAdmin:

class PhotoAdmin(admin.ModelAdmin):
    ...
    search_fields = ['name', 'description', 'user__related_fieldname', 'keyword']

26👍

cant reply due to low karma..

but don’t forget to register the Admin Model too, like

admin.py

from django.contrib import admin
from .models import *

admin.site.register(Photo, PhotoAdmin)

4👍

Adding Dan Walters answer, you can also search if you don’t know the exact word with __icontains

class PhotoAdmin(admin.ModelAdmin):
    ...
    search_fields = ['name__icontains', 'description', 'user__related_fieldname', 'keyword__icontains',
]

it’s equivalent to LIKE in SQL

3👍

When you write:

admin.site.register([Photo, PhotoAdmin])

you register in admin two models: Photo and PhotoAdmin, you must register Model and ModelAdmin for it, like this:

admin.site.register(Photo, PhotoAdmin) 

Leave a comment