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)),
]
Вернуться на верх