This repo is heavily influenced by django-admin-search and copies some of the components as well.
This repo implements search on Django admin page differently. It generates different search boxes for separate fields and doesn't treat all of those fields as string.
This app is tested using following:
- Django >= 3.2
- Python >= 3.9
This repo is published on Pypi. You can install it from there using following:
pip install django-better-search
- Add
django_separate_search
in yourINSTALLED_APPS
. Example:
INSTALLED_APPS = [
...
"django_separate_search",
...
]
- Create a search form to have search fields on your admin page. Example:
from django.forms import CharField, Form, IntegerField
class UserSearchForm(Form):
name = CharField(required=False, label="User's Name", help_text="Some help_text")
age = IntegerField(required=False, label="User's Age", help_text="Another help_text")
...
- Use the search form in your AppAdmin in your
admin.py
. Example:
from django_separate_search.admin import SeparateSearchAdmin
class UserAdmin(SeparateSearchAdmin):
...
search_form = UserSearchForm
...
This will render your search-form fields on the list-view admin page.
- If you want to implement search on a custom field, you will have to implement search_
<field_name>
. Example:
class UserAdmin(SeparateSearchAdmin):
...
def search_<field_name>(self, field, field_value, form_field, request, param_values):
query = Q()
// Implement your query
return query