Skip to content

Instantly share code, notes, and snippets.

@feus4177
Created October 1, 2017 02:37
Show Gist options
  • Save feus4177/83f7be95bb1e014bc89e7806c69dd27b to your computer and use it in GitHub Desktop.
Save feus4177/83f7be95bb1e014bc89e7806c69dd27b to your computer and use it in GitHub Desktop.
An example GraphQL schema using Graphene for Django.
import graphene
from graphene_django.types import DjangoObjectType
from graphene_django.filter import DjangoFilterConnectionField
from our_app import models
class OrderNode(DjangoObjectType):
class Meta:
model = models.Order
interfaces = [graphene.relay.Node]
class LineItemNode(DjangoObjectType):
class Meta:
model = models.LineItem
interfaces = [graphene.relay.Node]
class PartNode(DjangoObjectType):
class Meta:
model = models.Part
interfaces = [graphene.relay.Node]
class Query(graphene.ObjectType):
order = graphene.relay.Node.Field(OrderNode)
orders = DjangoFilterConnectionField(OrderNode)
line_item = graphene.relay.Node.Field(LineItemNode)
line_items = DjangoFilterConnectionField(LineItemNode)
part = graphene.relay.Node.Field(PartNode)
parts = DjangoFilterConnectionField(PartNode)
def resolve_orders(self, args, context, info):
return models.Order.objects.prefetch_related('line_items').all()
def resolve_line_items(self, args, context, info):
return models.LineItem.objects.all()
def resolve_parts(self, args, context, info):
return models.Part.objects.all()
schema = graphene.Schema(query=Query)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment