Skip to main content

Django mixin to easily add buttons to any ModelAdmin

Project description

django-adminfilters

Collection of extra filters for the Django admin site

Demo can be found at https://django-adminfilters.herokuapp.com/demo/artist/

Pypi coverage Test ReadTheDocs

https://user-images.githubusercontent.com/27282/153727131-d875f946-a8a8-4d89-be83-1d8cb5c9391a.mp4

Filters

  • Autocomplete
    • AutocompleteFilter
  • Simple
    • ValueFilter
  • Combobox
    • AllValuesComboFilter
    • RelatedFieldComboFilter
    • ChoicesFieldComboFilter
  • Dates
    • DateRangeFilter
  • Radio
    • AllValuesRadioFilter
    • RelatedFieldRadioFilter
    • ChoicesFieldRadioFilter
    • BooleanRadioFilter
  • Checkbox
    • RelatedFieldCheckBoxFilter
  • Multiple
    • MultiValueFilter
  • ManyToMany
    • IntersectionFieldListFilter
    • UnionFieldListFilter
  • JSON
    • JsonFieldFilter
  • Number
    • NumberFilter
  • Special
    • QueryStringFilter
    • DjangoLookupFilter
    • PermissionPrefixFilter

FYI

Filters management (save/retrieve), is handled by an optional application adminfilters.depot that, due to the Django filters internal design, it uses GET method to save filter definition to the database. When you use FilterDepotManager to save a filter, the call is idempotent but not safe.

Usage examples

class MyModel(models.Model):
    index = models.CharField(max_length=255)
    name = models.CharField(max_length=255)
    age = models.IntegerField()
    flag = models.CharField(default="1", choices=(("0", "Flag 1"), ("1", "Flag 2"))
    household = models.ForeignKey("Household")
    custom = JSONField(default=dict, blank=True)


class MyModelAdmin(ModelAdmin):
    list_filter = (
        FilterDepotManager,  # needs `adminfilters.depot` app
        QueryStringFilter,
        DjangoLookupFilter,
        ("custom", JsonFieldFilter.factory(can_negate=False, options=True)),
        ("flag", ChoicesFieldComboFilter),
        ("household", AutoCompleteFilter)
        ("name", ValueFilter.factory(lookup="istartswith"),
        ("age", NumberFilter),
    )

Run demo app

git clone https://github.com/saxix/django-adminfilters.git
cd django-adminfilters
python3 -m venv .venv
source .venv/bin/activate
make develop
make demo

Project links

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_adminfilters-2.5.2.tar.gz (58.9 kB view details)

Uploaded Source

Built Distribution

django_adminfilters-2.5.2-py2.py3-none-any.whl (49.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django_adminfilters-2.5.2.tar.gz.

File metadata

  • Download URL: django_adminfilters-2.5.2.tar.gz
  • Upload date:
  • Size: 58.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.7

File hashes

Hashes for django_adminfilters-2.5.2.tar.gz
Algorithm Hash digest
SHA256 2d4982490631cf198734e83337280ca831d5f559995198843103b30202104a29
MD5 ed6aef03b0bcefb991ac7c90e9bc1a1a
BLAKE2b-256 43e6bcf3341161b2d363281d0ddb9924ce27e31f7e8b370564b63c7f200e398c

See more details on using hashes here.

File details

Details for the file django_adminfilters-2.5.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_adminfilters-2.5.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c1f19c8215b4573159359eaa1231ecdb5f5d9edbfca93f44e4dce27636630596
MD5 28c32725d1659cce30710525902d615f
BLAKE2b-256 f0eb2965d0ae94edc46e8a3ec0328c3ec71f580afd57084a785a8e99d39c0a55

See more details on using hashes here.

Supported by

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