Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion graphene_django/filter/tests/test_fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

if DJANGO_FILTER_INSTALLED:
import django_filters
from django_filters import FilterSet, NumberFilter
from django_filters import FilterSet, NumberFilter, OrderingFilter

from graphene_django.filter import (
GlobalIDFilter,
Expand Down Expand Up @@ -1275,3 +1275,22 @@ class Query(ObjectType):
assert result.data == {
"people": {"edges": [{"node": {"name": "Joe"}}, {"node": {"name": "Bob"}},]}
}


def test_only_custom_filters():
class ReporterFilter(FilterSet):
class Meta:
model = Reporter
fields = []

some_filter = OrderingFilter(fields=("name",))

class ReporterFilterNode(DjangoObjectType):
class Meta:
model = Reporter
interfaces = (Node,)
fields = "__all__"
filterset_class = ReporterFilter

field = DjangoFilterConnectionField(ReporterFilterNode)
assert_arguments(field, "some_filter")
3 changes: 1 addition & 2 deletions graphene_django/filter/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ def get_filtering_args_from_filterset(filterset_class, type):
registry = type._meta.registry
for name, filter_field in filterset_class.base_filters.items():
filter_type = filter_field.lookup_expr
required = filter_field.extra.get("required", False)
field_type = None
form_field = None

Expand All @@ -47,8 +48,6 @@ def get_filtering_args_from_filterset(filterset_class, type):
or isinstance(filter_field, ArrayFilter)
):
# Get the filter field for filters that are no explicitly declared.

required = filter_field.extra.get("required", False)
if filter_type == "isnull":
field = graphene.Boolean(required=required)
else:
Expand Down