mirror of
https://github.com/django/django.git
synced 2025-10-28 08:06:09 +00:00
- Show "Clear all filters" only when any filter is selected. - Preserve query string not related with filters. Co-Authored-By: Hasan Ramezani <hasan.r67@gmail.com>
This commit is contained in:
committed by
Mariusz Felisiak
parent
3460ea49e8
commit
4484bc1b2f
@@ -3,7 +3,7 @@ from django.contrib.auth.admin import UserAdmin
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.paginator import Paginator
|
||||
|
||||
from .models import Child, Event, Parent, Swallow
|
||||
from .models import Band, Child, Event, Parent, Swallow
|
||||
|
||||
site = admin.AdminSite(name="admin")
|
||||
|
||||
@@ -59,6 +59,31 @@ class BandAdmin(admin.ModelAdmin):
|
||||
list_filter = ['genres']
|
||||
|
||||
|
||||
class NrOfMembersFilter(admin.SimpleListFilter):
|
||||
title = 'number of members'
|
||||
parameter_name = 'nr_of_members_partition'
|
||||
|
||||
def lookups(self, request, model_admin):
|
||||
return [
|
||||
('5', '0 - 5'),
|
||||
('more', 'more than 5'),
|
||||
]
|
||||
|
||||
def queryset(self, request, queryset):
|
||||
value = self.value()
|
||||
if value == '5':
|
||||
return queryset.filter(nr_of_members__lte=5)
|
||||
if value == 'more':
|
||||
return queryset.filter(nr_of_members__gt=5)
|
||||
|
||||
|
||||
class BandCallableFilterAdmin(admin.ModelAdmin):
|
||||
list_filter = [NrOfMembersFilter]
|
||||
|
||||
|
||||
site.register(Band, BandCallableFilterAdmin)
|
||||
|
||||
|
||||
class GroupAdmin(admin.ModelAdmin):
|
||||
list_filter = ['members']
|
||||
|
||||
|
||||
Reference in New Issue
Block a user