django-admin-rangefilter
A Django app that adds a filter by date range and numeric range to the admin UI.
Requirements
- Python 2.7+ or Python 3.6+
- Django 1.8+
Installation
Use your favorite Python package manager to install the app from PyPI, e.g.
Example:
pip install django-admin-rangefilter
Add rangefilter
to INSTALLED_APPS
:
Example:
INSTALLED_APPS = (
...
'rangefilter',
...
)
Example usage
In admin
from datetime import datetime
from django.contrib import admin
from rangefilter.filters import DateRangeFilterBuilder, DateTimeRangeFilterBuilder, NumericRangeFilterBuilder
from .models import Post
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
list_filter = (
("created_at", DateRangeFilterBuilder()),
(
"updated_at",
DateTimeRangeFilterBuilder(
title="Custom title",
default_start=datetime(2020, 1, 1),
default_end=datetime(2030, 1, 1),
),
),
("num_value", NumericRangeFilterBuilder()),
)
Support Content-Security-Policy
For Django 1.8+, if django-csp is installed, nonces will be added to style and script tags. The setting ADMIN_RANGEFILTER_NONCE_ENABLED controls this behavior.
INSTALLED_APPS = (
...
'rangefilter',
'csp',
...
)