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.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.

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