首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError,__init__()缺少1所需的位置参数是什么?在python中'get_response‘指的是什么?

TypeError,__init__()缺少1所需的位置参数是什么?在python中'get_response‘指的是什么?
EN

Stack Overflow用户
提问于 2020-06-08 21:39:51
回答 3查看 1.5K关注 0票数 9

我正在https://www.howtographql.com/graphql-python/4-authentication/上学习graphql教程。对于前三个部分,它运行得很好,但是在身份验证部分,我遇到了这个问题。

我正在学习python,不知道Django或graphql,所以它需要一次消化很多,但到目前为止还不错。也不确定这里要包含哪些相关的位元。

我遵守了所有的指示。当我去localhost:8000/graphql/的本地项目网站时,我得到了

TypeError at /graphql/

__init__() missing 1 required positional argument: 'get_response'

下面是我的settings.py的相关片段:

代码语言:javascript
复制
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
]

GRAPHENE = {
    'SCHEMA': 'hackernews.schema.schema',
    'MIDDLEWARE': ['graphql_jwt.middleware.JSONWebTokenMiddleware', ],
}

AUTHENTICATION_BACKENDS = [
    'graphql_jwt.backends.JSONWebTokenBackend',
    'django.contrib.auth.backends.ModelBackend',
]

我还在我的主graphql_jwt中导入了schema.py

下面是某种堆栈跟踪

代码语言:javascript
复制
Environment:


Request Method: GET
Request URL: http://localhost:8000/graphql/

Django Version: 2.1.4
Python Version: 3.7.4
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'graphene_django',
 'links']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware']



Traceback:

File "C:\Users\e79909\projects\python\graphql-python\venv\lib\site-packages\django\core\handlers\exception.py" in inner
  34.             response = get_response(request)

File "C:\Users\e79909\projects\python\graphql-python\venv\lib\site-packages\django\core\handlers\base.py" in _get_response
  126.                 response = self.process_exception_by_middleware(e, request)

File "C:\Users\e79909\projects\python\graphql-python\venv\lib\site-packages\django\core\handlers\base.py" in _get_response
  124.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "C:\Users\e79909\projects\python\graphql-python\venv\lib\site-packages\django\views\decorators\csrf.py" in wrapped_view
  54.         return view_func(*args, **kwargs)

File "C:\Users\e79909\projects\python\graphql-python\venv\lib\site-packages\django\views\generic\base.py" in view
  62.             self = cls(**initkwargs)

File "C:\Users\e79909\projects\python\graphql-python\venv\lib\site-packages\graphene_django\views.py" in __init__
  88.             self.middleware = list(instantiate_middleware(middleware))

File "C:\Users\e79909\projects\python\graphql-python\venv\lib\site-packages\graphene_django\views.py" in instantiate_middleware
  48.             yield middleware()

Exception Type: TypeError at /graphql/
Exception Value: __init__() missing 1 required positional argument: 'get_response'
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-06-13 01:29:49

好吧,我刚找到它。

代码语言:javascript
复制
GRAPHENE = {
    'SCHEMA': 'hackernews.schema.schema',
    'MIDDLEWARES': ['graphql_jwt.middleware.JSONWebTokenMiddleware'],
}

注意S。需要的是'MIDDLEWARES',而不是'MIDDLEWARE'

在这个GitHub问题上找到了解决方案

此外,根据同一问题上的这句话,您应该将'graphql_jwt.middleware.JSONWebTokenMiddleware'添加到MIDDLEWARE列表(带有所有Django中间件的那个)。

代码语言:javascript
复制
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'graphql_jwt.middleware.JSONWebTokenMiddleware', ### <---Add this line
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
票数 15
EN

Stack Overflow用户

发布于 2022-02-24 17:02:45

将django-graphql从教程的0.1.5升级到0.3.4 (或更高)

票数 0
EN

Stack Overflow用户

发布于 2022-09-29 13:34:07

当我们从Django 2.2版本移到Django 4.0.5版本时,就面临着这个问题。将DRF版本从3.12.0更新到3.14.0以解决此问题。

pip安装djangorestframework==3.14.0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62271614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档