AssertionError at /graphql/ Для GraphQLView необходимо предоставить схему
У меня есть Django API с маршрутом GraphQL.
Вот мой models.py:
class MyBook(models.Model):
id = models.BigAutoField(primary_key= True)
book_name = models.CharField(max_length= 200)
title = models.CharField(max_length= 200)
В моем Schema.py:
import graphene
from graphene_django.views import GraphQLSchema
from graphene_django import DjangoObjectType
from publishing_house_app.models import *
class BookType(DjangoObjectType):
class Meta:
model= MyBook
fields= "__all__"
class RootQuery(graphene.ObjectType):
books = graphene.List(BookType)
def resolve_books(self, root, info, **kwargs):
MyBook.objects.all()
MyBookSchema = graphene.Schema(query= RootQuery)
в urls.py:
from .views import *
from rest_framework.urlpatterns import path
from graphene_django.views import GraphQLView
from .GraphQL import Schema
urlpatterns = [
path("graphql/", GraphQLView.as_view(graphiql= True, schema= Schema)),
]
Я получаю следующую ошибку:
File "C:\Python39\lib\site-packages\graphene_django\views.py", line 127, in init assert isinstance. AssertionError в /graphql/ Схема должна быть предоставлена GraphQLView.
Вам необходимо передать действительную схему графена. Вы можете либо:
urlpatterns = [
path("graphql/", GraphQLView.as_view(graphiql=True, schema=MyBookSchema)),
]
или определите его в настройках так
GRAPHENE = {
...
"SCHEMA": "appname.schema.MyBookSchema",
...
}
и после этого вы можете создать url без необходимости передавать схему:
urlpatterns = [
path("graphql/", GraphQLView.as_view(graphiql=True)),
]