Application adds three Django admin list filters: DateRangeFilter
, PastDateRangeFilter
and FutureDateRangeFilter
. These filters let user filter models by date range. PastDateRangeFilter
and FutureDateRangeFilter
add quick selection of predefined date ranges. Filters can be applied to any model date fields. Application supports default Django admin theme and Suit theme.
- Python 2.7+ or Python 3.3+
- Django 1.9+
Install django-daterangefilter
using pip:
pip install django-daterangefilter
Add daterangefilter
to INSTALLED_APPS
. Example:
INSTALLED_APPS = (
...
'daterangefilter',
...
)
Application uses static files so do not forget to issue collectstatic
management command in production environment.
in admin.py:
from django.contrib import admin
from daterangefilter.filters import PastDateRangeFilter, FutureDateRangeFilter
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
list_filter = [
('created_at', PastDateRangeFilter), ('publish_at', FutureDateRangeFilter)
]
Predefined ranges can be completely redefined by overriding _past_ranges.html
and _future_ranges.html
templates.
Take into account that these templates are inserted in the middle of the javascript code and may contain nothing but ranges
definition. For more examples on using moment
library refer to library documentation.
Filter widget uses a great JavaScript date range picker component - Date Range Picker by Dan Grossman.