When I want to add some custom resolver (some complicated filter for example) for graphene.ObjectType I will lose opportunity to get filtered count number in Connection and etc. Example:
class Connection(relay.Connection):
"""Connection class"""
class Meta:
"""Meta class"""
abstract = True
total_count = graphene.Int()
def resolve_total_count(root, info, **kwargs):
"""Counts total number of documents with filters"""
return root.iterable.count()
class SomeModel(MongoengineObjectType):
class Meta:
connection_class = Connection
class SomeQueryRely(graphene.ObjectType):
q = MongoengineConnectionField(SomeModel, filter_one = graphene.String(name="filter_one"), filter_two =graphene.String(name="filter_two"))
def resolve_q(self, info: GraphQLResolveInfo, **kwargs):
query: QuerySet = info.context.queryset
QuerySet.filter(Q(filter_one=kwargs["filter_one"]) | Q(filter_two=kwargs["filter_two"]))
return query