@@ -28,15 +28,13 @@ class SingleNumericFilter(admin.FieldListFilter):
2828
2929 def __init__ (self , field , request , params , model , model_admin , field_path ):
3030 super ().__init__ (field , request , params , model , model_admin , field_path )
31-
3231 if not isinstance (field , (DecimalField , IntegerField , FloatField , AutoField )):
3332 raise TypeError ('Class {} is not supported for {}.' .format (type (self .field ), self .__class__ .__name__ ))
3433
3534 self .request = request
36-
3735 if self .parameter_name is None :
38- self .parameter_name = self .field .name
3936
37+ self .parameter_name = self .field_path
4038 if self .parameter_name in params :
4139 value = params .pop (self .parameter_name )
4240 self .used_parameters [self .parameter_name ] = value
@@ -66,22 +64,20 @@ class RangeNumericFilter(admin.FieldListFilter):
6664
6765 def __init__ (self , field , request , params , model , model_admin , field_path ):
6866 super ().__init__ (field , request , params , model , model_admin , field_path )
69-
7067 if not isinstance (field , (DecimalField , IntegerField , FloatField , AutoField )):
7168 raise TypeError ('Class {} is not supported for {}.' .format (type (self .field ), self .__class__ .__name__ ))
7269
7370 self .request = request
74-
7571 if self .parameter_name is None :
76- self .parameter_name = self .field . name
72+ self .parameter_name = self .field_path
7773
7874 if self .parameter_name + '_from' in params :
79- value = params .pop (self .parameter_name + '_from' )
80- self .used_parameters [self .parameter_name + '_from' ] = value
75+ value = params .pop (self .field_path + '_from' )
76+ self .used_parameters [self .field_path + '_from' ] = value
8177
8278 if self .parameter_name + '_to' in params :
83- value = params .pop (self .parameter_name + '_to' )
84- self .used_parameters [self .parameter_name + '_to' ] = value
79+ value = params .pop (self .field_path + '_to' )
80+ self .used_parameters [self .field_path + '_to' ] = value
8581
8682 def queryset (self , request , queryset ):
8783 filters = {}
@@ -128,16 +124,10 @@ def __init__(self, field, request, params, model, model_admin, field_path):
128124 super ().__init__ (field , request , params , model , model_admin , field_path )
129125
130126 self .field = field
131- parent_model , reverse_path = reverse_field_path (model , field_path )
132-
133- if model == parent_model :
134- self .q = model_admin .get_queryset (request )
135- else :
136- self .q = parent_model ._default_manager .all ()
127+ self .q = model_admin .get_queryset (request )
137128
138129 def choices (self , changelist ):
139130 total = self .q .all ().count ()
140-
141131 min_value = self .q .all ().aggregate (
142132 min = Min (self .parameter_name )
143133 ).get ('min' , 0 )
0 commit comments