File tree 2 files changed +21
-3
lines changed 2 files changed +21
-3
lines changed Original file line number Diff line number Diff line change 16
16
17
17
if DJANGO_FILTER_INSTALLED :
18
18
import django_filters
19
- from django_filters import FilterSet , NumberFilter
19
+ from django_filters import FilterSet , NumberFilter , OrderingFilter
20
20
21
21
from graphene_django .filter import (
22
22
GlobalIDFilter ,
@@ -1275,3 +1275,22 @@ class Query(ObjectType):
1275
1275
assert result .data == {
1276
1276
"people" : {"edges" : [{"node" : {"name" : "Joe" }}, {"node" : {"name" : "Bob" }},]}
1277
1277
}
1278
+
1279
+
1280
+ def test_only_custom_filters ():
1281
+ class ReporterFilter (FilterSet ):
1282
+ class Meta :
1283
+ model = Reporter
1284
+ fields = []
1285
+
1286
+ some_filter = OrderingFilter (fields = ("name" ,))
1287
+
1288
+ class ReporterFilterNode (DjangoObjectType ):
1289
+ class Meta :
1290
+ model = Reporter
1291
+ interfaces = (Node ,)
1292
+ fields = "__all__"
1293
+ filterset_class = ReporterFilter
1294
+
1295
+ field = DjangoFilterConnectionField (ReporterFilterNode )
1296
+ assert_arguments (field , "some_filter" )
Original file line number Diff line number Diff line change @@ -37,6 +37,7 @@ def get_filtering_args_from_filterset(filterset_class, type):
37
37
registry = type ._meta .registry
38
38
for name , filter_field in filterset_class .base_filters .items ():
39
39
filter_type = filter_field .lookup_expr
40
+ required = filter_field .extra .get ("required" , False )
40
41
field_type = None
41
42
form_field = None
42
43
@@ -47,8 +48,6 @@ def get_filtering_args_from_filterset(filterset_class, type):
47
48
or isinstance (filter_field , ArrayFilter )
48
49
):
49
50
# Get the filter field for filters that are no explicitly declared.
50
-
51
- required = filter_field .extra .get ("required" , False )
52
51
if filter_type == "isnull" :
53
52
field = graphene .Boolean (required = required )
54
53
else :
You can’t perform that action at this time.
0 commit comments