mirror of
https://github.com/graphql-python/graphene-django.git
synced 2025-07-13 17:52:19 +03:00
#534 add filterset validation to DjangoFilterConnectionField
This commit is contained in:
parent
f76f38ef30
commit
226a1d0e3a
|
@ -1,6 +1,7 @@
|
|||
from collections import OrderedDict
|
||||
from functools import partial
|
||||
|
||||
from graphql.error import GraphQLError
|
||||
from graphene.types.argument import to_arguments
|
||||
from ..fields import DjangoConnectionField
|
||||
from .utils import get_filtering_args_from_filterset, get_filterset_class
|
||||
|
@ -89,11 +90,22 @@ class DjangoFilterConnectionField(DjangoConnectionField):
|
|||
**args
|
||||
):
|
||||
filter_kwargs = {k: v for k, v in args.items() if k in filtering_args}
|
||||
qs = filterset_class(
|
||||
|
||||
filterset = filterset_class(
|
||||
data=filter_kwargs,
|
||||
queryset=default_manager.get_queryset(),
|
||||
request=info.context,
|
||||
).qs
|
||||
)
|
||||
|
||||
if not filterset.is_valid():
|
||||
exc = {
|
||||
key: [e.message for e in error_list]
|
||||
for key, error_list in filterset.errors.as_data().items()
|
||||
}
|
||||
|
||||
raise GraphQLError(exc)
|
||||
|
||||
qs = filterset.qs
|
||||
|
||||
return super(DjangoFilterConnectionField, cls).connection_resolver(
|
||||
resolver,
|
||||
|
|
Loading…
Reference in New Issue
Block a user