Graphene Filtering Documentation
pipenv install django-filter
from django.conf import settings
from graphene_django import DjangoObjectType
import graphene
from .models import Note
from graphene_django.filter import DjangoFilterConnectionField # <--
class NoteType(DjangoObjectType):
class Meta:
model = Note
filter_fields = ['id', 'title', 'content'] # <--
interfaces = (graphene.relay.Node,)
class Query(graphene.ObjectType):
notes = DjangoFilterConnectionField(NoteType) # <--
schema = graphene.Schema(query=Query)Similar to how Django filter() works.
class NoteType(DjangoObjectType):
class Meta:
model = Note
filter_fields = {
'id': ['exact'],
'title': ['exact', 'icontains', 'istartswith'],
'content': ['exact', 'icontains'],
}
interfaces = (graphene.relay.Node,)query {
# Note that fields names become camelcased
notes(content_Icontains: "hello") {
edges {
node {
title,
content
}
}
}
}