簡體   English   中英

AssertionError at /graphql/ 需要向 GraphQLView 提供架構

[英]AssertionError at /graphql/ A Schema is required to be provided to GraphQLView

我有一個帶有 GraphQL 路由的 Django API。

這是我的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)),
]

我收到以下錯誤:

文件“C:\\Python39\\lib\\site-packages\\graphene_django\\views.py”,第 127 行,在init assert isinstance 中。 AssertionError at /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)),
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM