Skip to main content
https://badge.fury.io/py/django-admin-fast-search.svg https://travis-ci.org/utkbansal/django-admin-fast-search.svg?branch=master https://codecov.io/gh/utkbansal/django-admin-fast-search/branch/master/graph/badge.svg

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:

INSTALLED_APPS = (
    ...
    'django_admin_fast_search',
    ...
)

Use it in your Django admin for search fields:

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

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:

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_admin_fast_search-0.2.4.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_admin_fast_search-0.2.4-py2.py3-none-any.whl (14.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file django_admin_fast_search-0.2.4.tar.gz.

File metadata

  • Download URL: django_admin_fast_search-0.2.4.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.4

File hashes

Hashes for django_admin_fast_search-0.2.4.tar.gz
Algorithm Hash digest
SHA256 1bfa4681eada70159ec5ca297adbf06a4290a09ed63d52065f96d5608a732afb
MD5 b0120f2ef330e51a081379dba1a71121
BLAKE2b-256 b3e6b042ed0c1036b4629ce22a13049662d6042f853bd3037c3da912989941cb

See more details on using hashes here.

File details

Details for the file django_admin_fast_search-0.2.4-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_admin_fast_search-0.2.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6479f4417594a91440871f3449a195a1f80a5575adef7ef25476491a0522b07e
MD5 d24bffdfdf15852ee2f5400dd152a251
BLAKE2b-256 d63c004487fac02af30ff01a0a5bc4e0026280a55bf124ede361041801749648

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.4 This release

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page