Skip to content

Danycraft98/django-rangefilter

 
 

Repository files navigation

image

image

django-admin-rangefilter

A Django app that adds a filter by date range to the admin UI.

image

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-rangefilter

Add rangefilter to INSTALLED_APPS:

Example:

INSTALLED_APPS = (
    ...
    'rangefilter',
    ...
)

Example usage

In admin

from django.contrib import admin
from rangefilter.filters import DateRangeFilter, DateTimeRangeFilter

from .models import Post


@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    list_filter = (
        ('created_at', DateRangeFilter), ('updated_at', DateTimeRangeFilter),
    )

    # If you would like to add a default range filter
    # method pattern "get_rangefilter_{field_name}_default"
    def get_rangefilter_created_at_default(self, request):
        return (datetime.date.today, datetime.date.today)

    # If you would like to change a title range filter
    # method pattern "get_rangefilter_{field_name}_title"
    def get_rangefilter_created_at_title(self, request, field_path):
        return 'custom title'

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',
    ...
)

About

A Django app that adds a filter by date range to the admin UI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 62.8%
  • HTML 27.1%
  • CSS 4.1%
  • JavaScript 4.0%
  • Makefile 2.0%