@@ -87,7 +87,19 @@ class BooleanFilter(Filter):
87
87
class ChoiceFilter (Filter ):
88
88
field_class : type [Any ] # Base class for choice-based filters
89
89
null_value : Any # Null value can be any type (None, empty string, etc.)
90
- def __init__ (self , * args : Any , ** kwargs : Any ) -> None : ... # Uses kwargs for null_value config
90
+ def __init__ (
91
+ self ,
92
+ field_name : str | None = None ,
93
+ lookup_expr : str | None = None ,
94
+ * ,
95
+ null_value : Any = None ,
96
+ # Inherited from Filter
97
+ label : str | None = None ,
98
+ method : Callable [..., Any ] | str | None = None , # Filter methods can return various types
99
+ distinct : bool = False ,
100
+ exclude : bool = False ,
101
+ ** kwargs : Any , # Field kwargs stored as extra (required, help_text, etc.)
102
+ ) -> None : ...
91
103
def filter (self , qs : QuerySet [Any ], value : Any ) -> QuerySet [Any ]: ...
92
104
93
105
class TypedChoiceFilter (Filter ):
@@ -101,7 +113,20 @@ class MultipleChoiceFilter(Filter):
101
113
always_filter : bool
102
114
conjoined : bool
103
115
null_value : Any # Multiple choice null values vary by implementation
104
- def __init__ (self , * args : Any , ** kwargs : Any ) -> None : ... # Uses kwargs for distinct, conjoined, null_value config
116
+ def __init__ (
117
+ self ,
118
+ field_name : str | None = None ,
119
+ lookup_expr : str | None = None ,
120
+ * ,
121
+ distinct : bool = True , # Overrides distinct default
122
+ conjoined : bool = False ,
123
+ null_value : Any = None ,
124
+ # Inherited from Filter
125
+ label : str | None = None ,
126
+ method : Callable [..., Any ] | str | None = None , # Filter methods can return various types
127
+ exclude : bool = False ,
128
+ ** kwargs : Any , # Field kwargs stored as extra (required, help_text, etc.)
129
+ ) -> None : ...
105
130
def is_noop (self , qs : QuerySet [Any ], value : Any ) -> bool : ... # Value can be any filter input
106
131
def filter (self , qs : QuerySet [Any ], value : Any ) -> QuerySet [Any ]: ...
107
132
def get_filter_predicate (self , v : Any ) -> Q : ... # Predicate value can be any filter input type
@@ -126,15 +151,29 @@ class DurationFilter(Filter):
126
151
127
152
class QuerySetRequestMixin :
128
153
queryset : QuerySet [Any ] | None
129
- def __init__ (self , * args : Any , ** kwargs : Any ) -> None : ... # Uses kwargs for queryset config
154
+ def __init__ (self , * , queryset : QuerySet [ Any ] | None ) -> None : ...
130
155
def get_request (self ) -> Any : ... # Request can be HttpRequest or other request types
131
156
def get_queryset (self , request : Any ) -> QuerySet [Any ]: ... # Request parameter accepts various request types
132
157
@property
133
158
def field (self ) -> Field : ...
134
159
135
160
class ModelChoiceFilter (QuerySetRequestMixin , ChoiceFilter ):
136
161
field_class : type [ModelChoiceField ] # More specific than parent ChoiceField
137
- def __init__ (self , * args : Any , ** kwargs : Any ) -> None : ... # Uses kwargs for empty_label config
162
+ def __init__ (
163
+ self ,
164
+ field_name : str | None = None ,
165
+ lookup_expr : str | None = None ,
166
+ * ,
167
+ queryset : QuerySet [Any ] | None ,
168
+ # Inherited from ChoiceFilter
169
+ null_value : Any = None ,
170
+ # Inherited from Filter
171
+ label : str | None = None ,
172
+ method : Callable [..., Any ] | str | None = None , # Filter methods can return various types
173
+ distinct : bool = False ,
174
+ exclude : bool = False ,
175
+ ** kwargs : Any , # Field kwargs stored as extra (required, help_text, etc.)
176
+ ) -> None : ...
138
177
139
178
class ModelMultipleChoiceFilter (QuerySetRequestMixin , MultipleChoiceFilter ):
140
179
field_class : type [ModelMultipleChoiceField ] # More specific than parent MultipleChoiceField
@@ -159,7 +198,20 @@ class DateRangeFilter(ChoiceFilter):
159
198
choices : list [tuple [str , str ]] | None
160
199
filters : dict [str , Filter ] | None
161
200
def __init__ (
162
- self , choices : list [tuple [str , str ]] | None = None , filters : dict [str , Filter ] | None = None , * args : Any , ** kwargs : Any
201
+ self ,
202
+ choices : list [tuple [str , str ]] | None = None ,
203
+ filters : dict [str , Filter ] | None = None ,
204
+ field_name : str | None = None ,
205
+ lookup_expr : str | None = None ,
206
+ * ,
207
+ # Inherited from ChoiceFilter
208
+ null_value : Any = None ,
209
+ # Inherited from Filter
210
+ label : str | None = None ,
211
+ method : Callable [..., Any ] | str | None = None , # Filter methods can return various types
212
+ distinct : bool = False ,
213
+ exclude : bool = False ,
214
+ ** kwargs : Any , # Field kwargs stored as extra (required, help_text, etc.)
163
215
) -> None : ... # Uses args/kwargs for choice and filter configuration
164
216
def filter (self , qs : QuerySet [Any ], value : Any ) -> QuerySet [Any ]: ...
165
217
@@ -186,14 +238,11 @@ class AllValuesMultipleFilter(MultipleChoiceFilter):
186
238
class BaseCSVFilter (Filter ):
187
239
base_field_class : type [BaseCSVField ] = ...
188
240
field_class : type [Any ] # Base class for CSV-based filters
189
- def __init__ (self , * args : Any , ** kwargs : Any ) -> None : ... # Uses kwargs for help_text and widget config
190
241
191
- class BaseInFilter (BaseCSVFilter ):
192
- def __init__ (self , * args : Any , ** kwargs : Any ) -> None : ... # Sets lookup_expr and passes through
242
+ class BaseInFilter (BaseCSVFilter ): ...
193
243
194
244
class BaseRangeFilter (BaseCSVFilter ):
195
245
base_field_class : type [BaseRangeField ] = ...
196
- def __init__ (self , * args : Any , ** kwargs : Any ) -> None : ... # Sets lookup_expr and passes through
197
246
198
247
class LookupChoiceFilter (Filter ):
199
248
field_class : type [forms .CharField ]
@@ -205,7 +254,15 @@ class LookupChoiceFilter(Filter):
205
254
field_name : str | None = None ,
206
255
lookup_choices : list [tuple [str , str ]] | None = None ,
207
256
field_class : type [Field ] | None = None ,
208
- ** kwargs : Any , # Handles empty_label and other field config
257
+ * ,
258
+ # Inherited from ChoiceFilter
259
+ null_value : Any = None ,
260
+ # Inherited from Filter
261
+ label : str | None = None ,
262
+ method : Callable [..., Any ] | str | None = None , # Filter methods can return various types
263
+ distinct : bool = False ,
264
+ exclude : bool = False ,
265
+ ** kwargs : Any , # Field kwargs stored as extra (required, help_text, etc.)
209
266
) -> None : ...
210
267
@classmethod
211
268
def normalize_lookup (cls , lookup : Any ) -> tuple [Any , str ]: ...
@@ -219,7 +276,21 @@ class OrderingFilter(BaseCSVFilter, ChoiceFilter):
219
276
field_class : type [BaseCSVField ] # Inherits CSV field behavior for comma-separated ordering
220
277
descending_fmt : str
221
278
param_map : dict [str , str ] | None
222
- def __init__ (self , * args : Any , ** kwargs : Any ) -> None : ... # Uses kwargs for fields and field_labels config
279
+ def __init__ (
280
+ self ,
281
+ field_name : str | None = None ,
282
+ lookup_expr : str | None = None ,
283
+ * ,
284
+ # Inherited from ChoiceFilter
285
+ null_value : Any = None ,
286
+ # Inherited from Filter
287
+ field_labels : dict [Any , Any ] | None = None ,
288
+ label : str | None = None ,
289
+ method : Callable [..., Any ] | str | None = None , # Filter methods can return various types
290
+ distinct : bool = False ,
291
+ exclude : bool = False ,
292
+ ** kwargs : Any , # Field kwargs stored as extra (required, help_text, etc.)
293
+ ) -> None : ...
223
294
def get_ordering_value (self , param : str ) -> str : ...
224
295
def filter (self , qs : QuerySet [Any ], value : Any ) -> QuerySet [Any ]: ...
225
296
@classmethod
0 commit comments