Skip to main content

Your project description goes here

Project description

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.

Project details


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.3.tar.gz (12.7 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.3-py2.py3-none-any.whl (13.9 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for django_admin_fast_search-0.2.3.tar.gz
Algorithm Hash digest
SHA256 02f0343f7ed7f68256d5f24858998b7800708ec4323a095897a7ddf750739f45
MD5 1abc39d5bfd39aea6cd4ef5ca38d8d89
BLAKE2b-256 8206fd281fc00df99bc37919114f9c8e2a53a0ca6c99b7b59908920812dfa418

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_admin_fast_search-0.2.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9bf3c0917cef31ee5f66c4155684ebd267427867c77f9c28d57fdd2cab592e1e
MD5 d8059509f1b683f26b31a0be3591d3f2
BLAKE2b-256 75083f5ad2e9e4c023738000bb62bc0acb3a8ba6467c9864fce892e10131cd6e

See more details on using hashes here.

Supported by

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