=============================
django-admin-fast-search
=============================
.. image:: https://badge.fury.io/py/django-admin-fast-search.svg
:target: https://badge.fury.io/py/django-admin-fast-search
.. image:: https://travis-ci.org/utkbansal/django-admin-fast-search.svg?branch=master
:target: https://travis-ci.org/utkbansal/django-admin-fast-search
.. image:: https://codecov.io/gh/utkbansal/django-admin-fast-search/branch/master/graph/badge.svg
:target: https://codecov.io/gh/utkbansal/django-admin-fast-search
Your project description goes here
Documentation
-------------
The full documentation is at https://django-admin-fast-search.readthedocs.io.
Quickstart
----------
Install django-admin-fast-search::
pip install django-admin-fast-search
Add it to your `INSTALLED_APPS`:
.. code-block:: python
INSTALLED_APPS = (
...
'django_admin_fast_search',
...
)
Use it in your Django admin for search fields:
.. code-block:: python
from django_admin_fast_search.admin import FastSearch
class MyModelAdmin(FastSearch, admin.ModelAdmin):
list_display = ['name', 'email']
search_fields_contains = ("address",)
search_fields_exact = ("id", "email")
search_fields_fulltext_index = ("name",)
search_fields = search_fields_fulltext_index + search_fields_exact + search_fields_contains
Use it for list filters with django_filters_
.. code-block:: python
from django_filters import BooleanFilter, CharFilter, ModelChoiceFilter, FilterSet
from django_admin_fast_search.admin import FastSearchFilterMixin
class MyModelFilter(FastSearchFilterMixin, FilterSet):
is_verified = BooleanFilter(label="Verified?")
company_name = CharFilter(field_name="company__name", lookup_expr="icontains")
company_pincode = CharFilter(field_name="company__location_pincode", lookup_expr="exact")
company = ModelChoiceFilter()
# OR
company = ModelChoiceFilter(queryset=Company.objects.active())
exclude_industry = CharFilter(field_name="industry", lookup_expr="icontains", label="Exclude Industry", exclude=True)
status = MultipleChoiceFilter(
field_name="status",
lookup_expr="exact",
label="Status",
choices=MyModel.STATUS_CHOICES,
)
created_at = DateFilter(field_name="created_at", lookup_expr="gt", label="Signed up After")
class Meta:
model = MyModel
fields = [
"is_verified",
"company_name",
"company_pincode",
"company",
"exclude_industry",
"status",
"created_at",
]
class MyModelAdmin(FastSearch, admin.ModelAdmin):
list_display = ['name', 'email']
list_filter = ["company_tier", *MyModelFilter.as_admin_filters()]
# or only use class-based filters
list_filter = MyModelFilter.as_admin_filters()
Running Tests
-------------
Does the code actually work?
::
source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ tox
Development commands
---------------------
::
pip install -r requirements_dev.txt
invoke -l
Credits
-------
Tools used in rendering this package:
* Cookiecutter_
* `cookiecutter-djangopackage`_
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage
.. _django_filters: https://django-filter.readthedocs.io/en/stable/
History
-------
0.1.2 (2022-05-30)
++++++++++++++++++
* Add classifiers for Python 3.7, 3.8, 3.9, 3.10
* Remove support for Python 2, 2.7, 3.5, 3.6
* Automate publish to PyPi
0.1.0 (2021-05-22)
++++++++++++++++++
* First release on PyPI.
Raw data
{
"_id": null,
"home_page": "https://github.com/utkbansal/django-admin-fast-search",
"name": "django-admin-fast-search",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "django-admin-fast-search",
"author": "Utkarsh Bansal",
"author_email": "ubansal@instawork.com",
"download_url": "https://files.pythonhosted.org/packages/43/d8/bb663ae3fb3e06b632330e1009e4b0f6062ff79fbb3fae05f5d7aa83aac8/django_admin_fast_search-0.2.2.tar.gz",
"platform": null,
"description": "=============================\ndjango-admin-fast-search\n=============================\n\n.. image:: https://badge.fury.io/py/django-admin-fast-search.svg\n :target: https://badge.fury.io/py/django-admin-fast-search\n\n.. image:: https://travis-ci.org/utkbansal/django-admin-fast-search.svg?branch=master\n :target: https://travis-ci.org/utkbansal/django-admin-fast-search\n\n.. image:: https://codecov.io/gh/utkbansal/django-admin-fast-search/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/utkbansal/django-admin-fast-search\n\nYour project description goes here\n\nDocumentation\n-------------\n\nThe full documentation is at https://django-admin-fast-search.readthedocs.io.\n\nQuickstart\n----------\n\nInstall django-admin-fast-search::\n\n pip install django-admin-fast-search\n\nAdd it to your `INSTALLED_APPS`:\n\n.. code-block:: python\n\n INSTALLED_APPS = (\n ...\n 'django_admin_fast_search',\n ...\n )\n\nUse it in your Django admin for search fields:\n\n.. code-block:: python\n\n from django_admin_fast_search.admin import FastSearch\n\n class MyModelAdmin(FastSearch, admin.ModelAdmin):\n list_display = ['name', 'email']\n\n search_fields_contains = (\"address\",)\n search_fields_exact = (\"id\", \"email\")\n search_fields_fulltext_index = (\"name\",)\n search_fields = search_fields_fulltext_index + search_fields_exact + search_fields_contains\n\n\nUse it for list filters with django_filters_\n\n.. code-block:: python\n\n from django_filters import BooleanFilter, CharFilter, ModelChoiceFilter, FilterSet\n from django_admin_fast_search.admin import FastSearchFilterMixin\n\n class MyModelFilter(FastSearchFilterMixin, FilterSet):\n is_verified = BooleanFilter(label=\"Verified?\")\n\n company_name = CharFilter(field_name=\"company__name\", lookup_expr=\"icontains\")\n company_pincode = CharFilter(field_name=\"company__location_pincode\", lookup_expr=\"exact\")\n\n company = ModelChoiceFilter()\n # OR\n company = ModelChoiceFilter(queryset=Company.objects.active())\n\n exclude_industry = CharFilter(field_name=\"industry\", lookup_expr=\"icontains\", label=\"Exclude Industry\", exclude=True)\n\n status = MultipleChoiceFilter(\n field_name=\"status\",\n lookup_expr=\"exact\",\n label=\"Status\",\n choices=MyModel.STATUS_CHOICES,\n )\n\n created_at = DateFilter(field_name=\"created_at\", lookup_expr=\"gt\", label=\"Signed up After\")\n\n class Meta:\n model = MyModel\n fields = [\n \"is_verified\",\n \"company_name\",\n \"company_pincode\",\n \"company\",\n \"exclude_industry\",\n \"status\",\n \"created_at\",\n ]\n\n\n class MyModelAdmin(FastSearch, admin.ModelAdmin):\n list_display = ['name', 'email']\n\n list_filter = [\"company_tier\", *MyModelFilter.as_admin_filters()]\n\n # or only use class-based filters\n\n list_filter = MyModelFilter.as_admin_filters()\n\n\nRunning Tests\n-------------\n\nDoes the code actually work?\n\n::\n\n source <YOURVIRTUALENV>/bin/activate\n (myenv) $ pip install tox\n (myenv) $ tox\n\n\nDevelopment commands\n---------------------\n\n::\n\n pip install -r requirements_dev.txt\n invoke -l\n\n\nCredits\n-------\n\nTools used in rendering this package:\n\n* Cookiecutter_\n* `cookiecutter-djangopackage`_\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage\n.. _django_filters: https://django-filter.readthedocs.io/en/stable/\n\n\n\n\nHistory\n-------\n\n0.1.2 (2022-05-30)\n++++++++++++++++++\n\n* Add classifiers for Python 3.7, 3.8, 3.9, 3.10\n* Remove support for Python 2, 2.7, 3.5, 3.6\n* Automate publish to PyPi\n\n0.1.0 (2021-05-22)\n++++++++++++++++++\n\n* First release on PyPI.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Your project description goes here",
"version": "0.2.2",
"project_urls": {
"Homepage": "https://github.com/utkbansal/django-admin-fast-search"
},
"split_keywords": [
"django-admin-fast-search"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "369354560ec0697d93cc262fe5ea23080e1647cd93f7e2a895e3cb931d173031",
"md5": "77b51afed54aa6d3487b52598a238ca0",
"sha256": "ec3f96d3e70a20f6b7114c87f8010b965be1bd1387919785bbf263ef34c2fd85"
},
"downloads": -1,
"filename": "django_admin_fast_search-0.2.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "77b51afed54aa6d3487b52598a238ca0",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 13836,
"upload_time": "2025-01-15T11:53:49",
"upload_time_iso_8601": "2025-01-15T11:53:49.753909Z",
"url": "https://files.pythonhosted.org/packages/36/93/54560ec0697d93cc262fe5ea23080e1647cd93f7e2a895e3cb931d173031/django_admin_fast_search-0.2.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "43d8bb663ae3fb3e06b632330e1009e4b0f6062ff79fbb3fae05f5d7aa83aac8",
"md5": "e4817bf00fd06592afd984fca4a17ddd",
"sha256": "e7c99825a557b8b121f19eb3c6f1557f3e916dffc3fe42af74d69acdcbca1600"
},
"downloads": -1,
"filename": "django_admin_fast_search-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "e4817bf00fd06592afd984fca4a17ddd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12657,
"upload_time": "2025-01-15T11:53:51",
"upload_time_iso_8601": "2025-01-15T11:53:51.541340Z",
"url": "https://files.pythonhosted.org/packages/43/d8/bb663ae3fb3e06b632330e1009e4b0f6062ff79fbb3fae05f5d7aa83aac8/django_admin_fast_search-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-15 11:53:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "utkbansal",
"github_project": "django-admin-fast-search",
"github_not_found": true,
"lcname": "django-admin-fast-search"
}