【问题标题】:AssertionError at /graphql/ Query fields must be a mapping (dict / OrderedDict) with field names as keys or a function which returns such a mapping/graphql/ 处的 AssertionError 查询字段必须是一个映射(dict / OrderedDict),其中字段名称作为键或返回此类映射的函数
【发布时间】:2022-04-30 13:54:17
【问题描述】:

我是 django 和 graphql 的新手,我正在尝试按照本网站提供的说明在 django 中使用 graphql。

https://docs.graphene-python.org/projects/django/en/latest/installation/

我仔细按照说明操作,但是当我输入网址时http://127.0.0.1:8000/graphql/

我收到错误后的错误。

AssertionError at /graphql/
Query fields must be a mapping (dict / OrderedDict) with field names 
as keys or a function which returns such a mapping.

我只有一个名为 demo 的应用程序。 demo app的models.py中的代码如下...

from django.db import models

# Create your models here.
class UserProfile(models.Model):
    userId = models.IntegerField(primary_key=True)
    userName = models.CharField(max_length=15)
    password = models.CharField(max_length=15)
    address = models.CharField(max_length=30)
    phoneNumber = models.IntegerField()

    class Meta:
        db_table = 'UserProfile'

这里是项目文件夹中settings.py文件的相关部分。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'graphene_django',
    'corsheaders',
    'demo',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

CORS_ORIGIN_ALLOW_ALL = True

GRAPHENE = {
    'SCHEMA': 'abc.schema.schema'
}

abc 是包含manage.py 的主项目文件夹的名称。

这里是 urls.py 文件

from django.contrib import admin
from django.urls import path
from graphene_django.views import GraphQLView

urlpatterns = [
        path('admin/', admin.site.urls),
        path('graphql/', GraphQLView.as_view(graphiql=True)),
    ]

请帮忙,提前谢谢。

【问题讨论】:

  • 你能显示schema.py代码吗
  • 我前段时间修好了,谢谢你的评论。据我记得,我将query.py 文件留空,然后将其包含在schema.py 中,这就是我认为的问题。
  • @ShashankAC 如果您可以发布您的解决方案,包括查询和架构,这将很有用,因为我遇到了同样的问题

标签: python django graphql runtime-error


【解决方案1】:

通过在 schema.py 中插入 DjangoObjectType 而不是 ObjectType 解决了我的问题 你可以导入它: from graphene_django.types 导入 DjangoObjectType

【讨论】:

    猜你喜欢
    • 2018-03-26
    • 2017-01-17
    • 2022-08-23
    • 2018-07-29
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    相关资源
    最近更新 更多