Skip to main content

Extra filters for django admin site

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.3.1.tar.gz (55.6 kB view details)

Uploaded Source

File details

Details for the file django-adminfilters-2.3.1.tar.gz.

File metadata

  • Download URL: django-adminfilters-2.3.1.tar.gz
  • Upload date:
  • Size: 55.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.2

File hashes

Hashes for django-adminfilters-2.3.1.tar.gz
Algorithm Hash digest
SHA256 a69cceb41aa7e7581aae49ee29131d5d6985deab1e2d3fd6307e8124017e5b05
MD5 5ef51138c608bba44629b3e9c9ddda2b
BLAKE2b-256 430bacdebb7b85c99353180652298c014df65d1db21cbd14f2e36ee81a99d4a7

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 Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page