99from django .db .models import BLANK_CHOICE_DASH , Model
1010from django .http import HttpRequest , HttpResponse
1111from django .shortcuts import redirect
12+ from django .template .response import TemplateResponse
1213from django .urls import URLPattern , path
1314from django .utils .safestring import mark_safe
1415from django .utils .translation import gettext_lazy as _
@@ -56,12 +57,12 @@ class ModelAdmin(BaseModelAdminMixin, ActionModelAdminMixin, BaseModelAdmin):
5657 warn_unsaved_form = False
5758 checks_class = UnfoldModelAdminChecks
5859
59- @ property
60- def media ( self ):
61- media = super (). media
60+ def changelist_view (
61+ self , request : HttpRequest , extra_context : Optional [ dict [ str , str ]] = None
62+ ) -> TemplateResponse :
6263 additional_media = forms .Media ()
6364
64- for filter in self .list_filter :
65+ for filter in self .get_list_filter ( request ) :
6566 if (
6667 isinstance (filter , (tuple , list ))
6768 and hasattr (filter [1 ], "form_class" )
@@ -71,7 +72,16 @@ def media(self):
7172 elif hasattr (filter , "form_class" ) and hasattr (filter .form_class , "Media" ):
7273 additional_media += forms .Media (filter .form_class .Media )
7374
74- return media + additional_media
75+ if not extra_context :
76+ extra_context = {}
77+
78+ extra_context .update (
79+ {
80+ "media" : self .media + additional_media ,
81+ }
82+ )
83+
84+ return super ().changelist_view (request , extra_context )
7585
7686 def get_fieldsets (self , request : HttpRequest , obj = None ) -> FieldsetsType :
7787 if not obj and self .add_fieldsets :
0 commit comments