【发布时间】: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