This Django application introduces a GlobalSearchView, designed to perform a global search across various models within the Django admin site.
- Global Search: Enables searching across multiple models from a single query.
- Dynamic Model Inclusion: Automatically includes models that define
global_search_fields
, allowing for flexible search configurations. - Admin Integration: Provides direct links to the admin change page for each search result, facilitating easy editing.
- Python versions 3.8+.
- Django version 3+
Install with command pip install django-admin-global-search
.
To use django-admin-global-search
in your Django project, you need to update your models and URL configurations.
- Add
admin_global_search
to yourINSTALLED_APPS
setting beforedjango.contrib.admin
.
INSTALLED_APPS = [
"admin_global_search",
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
...
]
- Ensure your models have a
global_search_fields
attribute that specifies the fields to be included in the search. Example:
class Artist(models.Model):
name = models.CharField(max_length=100)
bio = models.TextField(blank=True)
global_search_fields = ("name", "bio")
def __str__(self):
return self.name
- Update your project's urls.py to include the GlobalSearchView. Example:
...
from admin_global_search.views import GlobalSearchView
urlpatterns = [
path("admin/", admin.site.urls),
path("search/", GlobalSearchView.as_view(), name="admin_global_search"),
...
]
Contributions to the project are welcome. To contribute:
- Fork the repository.
- Create a new feature branch for your contribution.
- Commit your changes with a descriptive message.
- Push your changes to GitHub.
- Submit a pull request for review.
The project is made available under the BSD 3-Clause License. Please refer to the LICENSE file for more details.