diff --git a/questions/schema.py b/questions/schema.py new file mode 100644 index 0000000..3436eef --- /dev/null +++ b/questions/schema.py @@ -0,0 +1,23 @@ +import graphene +from graphene_django.types import DjangoObjectType +from .models import Type, Topic + +class TypeNode(DjangoObjectType): + class Meta: + model= Type + +class TopicNode(DjangoObjectType): + class Meta: + model= Topic + +# Writing an app level query +class Query(graphene.ObjectType): + all_types= graphene.List(TypeNode) + all_topics= graphene.List(TopicNode) + + def resolve_all_types(self, info): + return Type.objects.all() + + + def resolve_all_topic(self, info): + return Topic.objectsall() diff --git a/qujini/schema.py b/qujini/schema.py new file mode 100644 index 0000000..d271f27 --- /dev/null +++ b/qujini/schema.py @@ -0,0 +1,9 @@ +import graphene +import questions.schema + + +class Query(questions.schema.Query, graphene.ObjectType): + # This class extends all abstract apps level Queries and graphene.ObjectType + pass + +schema = graphene.Schema(query=Query) diff --git a/qujini/settings.py b/qujini/settings.py index d53cfb1..bf63d33 100644 --- a/qujini/settings.py +++ b/qujini/settings.py @@ -39,6 +39,7 @@ 'django.contrib.staticfiles', 'questions', 'ckeditor', + 'graphene_django', ] MIDDLEWARE = [ @@ -101,7 +102,9 @@ }, ] - +GRAPHENE= { + 'SCHEMA': 'qujini.schema.schema' +} # Internationalization # https://docs.djangoproject.com/en/2.0/topics/i18n/ diff --git a/qujini/urls.py b/qujini/urls.py index 1f0c922..3ce5c6b 100644 --- a/qujini/urls.py +++ b/qujini/urls.py @@ -15,7 +15,11 @@ """ from django.contrib import admin from django.urls import path +from graphene_django.views import GraphQLView +from qujini.schema import schema + urlpatterns = [ - path('admin/', admin.site.urls), + path(r'admin/', admin.site.urls), + path(r'',GraphQLView.as_view(graphiql=True)), ]