django-admin-rangefilter

0.13.5 · active · verified Sat Apr 11

django-admin-rangefilter is a Django application that enhances the admin UI by adding custom date, datetime, and numeric range filters. It is currently at version 0.13.5 and maintains an active release cadence, frequently updating for Django compatibility and bug fixes.

Warnings

Install

Imports

Quickstart

First, add 'rangefilter' to your `INSTALLED_APPS` in `settings.py`. Then, in your `admin.py`, import the desired filter classes (e.g., `DateRangeFilter`, `DateTimeRangeFilter`, `NumericRangeFilter`) and apply them to fields in your `ModelAdmin`'s `list_filter` attribute. For date/datetime fields, simply specify the field name and filter class. For numeric fields, specify the field name and `NumericRangeFilter`.

# settings.py
INSTALLED_APPS = [
    # ...
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    # ...
    'rangefilter',
    # ...
]

# models.py (example)
from django.db import models
class MyModel(models.Model):
    name = models.CharField(max_length=100)
    created_at = models.DateField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    price = models.DecimalField(max_digits=10, decimal_places=2, default=0.00)
    def __str__(self):
        return self.name

# admin.py
from django.contrib import admin
from rangefilter.filters import DateRangeFilter, DateTimeRangeFilter, NumericRangeFilter
from .models import MyModel

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    list_display = ('name', 'created_at', 'updated_at', 'price')
    list_filter = (
        ('created_at', DateRangeFilter),
        ('updated_at', DateTimeRangeFilter),
        ('price', NumericRangeFilter),
        # Add 'collapsible=True' for Django >= 4.1:
        # ('created_at', {'filter_class': DateRangeFilter, 'collapsible': True}),
    )

view raw JSON →