我是django和python的新手,我在将django rest框架集成到我的项目中时遇到了麻烦。
我已经按顺序获得了我的模型,序列化程序和api,但是当我尝试运行服务器时,我遇到了一系列错误:
(pyDev)C:\ Users \ pyDev \ smrt> python manage.py运行服务器 执行系统检查......
Unhandled exception in thread started by <function wrapper at 0x0000000003FFD278
>
Traceback (most recent call last):
...
File "C:\Python27\Lib\site-packages\rest_framework\generics.py", line 8, in <m
odule>
from rest_framework import views, mixins
File "C:\Python27\Lib\site-packages\rest_framework\views.py", line 14, in <mod
ule>
from rest_framework.response import Response
File "C:\Python27\Lib\site-packages\rest_framework\response.py", line 8, in <m
odule>
from django.core.handlers.wsgi import STATUS_CODE_TEXT
ImportError: cannot import name STATUS_CODE_TEXT
任何人都知道如何解决这个问题或者我做错了什么?谢谢!
wpercy正确地指出已从django中删除了STATUS_CODE_TEXT,但我没有在我的代码中的任何地方显式调用它。我想这意味着它在rest_framework.generics代码的某个地方?
我是否有可能错误地使用rest_framework并需要更新我的方法?
编辑:我在django rest框架教程之后从头开始构建了一个全新的项目,我能够很好地返回JSON对象而没有这里描述的错误......编辑:这似乎是调用包括:
的结果rest_framework.generics import ListAPIView
编辑: 根据wpercy的建议,我仔细查看了追溯,并意识到引用指向我的根python27 \ Lib \ site-packages \ rest_framework \ response.py,如上所示,我发现:
from django.core.handlers.wsgi import STATUS_CODE_TEXT
然后在第81行:
return STATUS_CODE_TEXT.get(self.status_code, '')
我该如何解决这个问题?
编辑: 我在链接上找到了wpercy&amp;发表于下面的评论者
Link to relevant ticket。 Jpadilla写道:
总之,我们应该可以做一些像response.py:
这样的事情from django.utils.six.moves.http_client import responses
...
return responses.get(self.status_code, '')
我放弃了这个建议,这是github上的一个封闭项目:
ticket for django-rest-framework Status code
,服务器现在将运行。我不确定我是如何得到这个旧代码的?也许我应该卸载并重新安装django-rest-framework以确保我拥有最新的,但删除此代码确实解决了这个问题。
编辑: 基于我从另一个问题得到的答案:'Options' object has no attribute 'get_all_related_objects' but I'm already using Django 1.11 事实证明,我使用旧版本的休息框架和新版本的django。见见下面的答案
答案 0 :(得分:1)
此错误是因为您使用的=COUNTIFS(A:A,"<>",A:A,"<>x")
版本(v3.1.1)不支持Django 1.11版。 Support for Django v1.11 was not added in django-rest-framework
until version 3.7
使用pip升级django-rest-framework
:django-rest-framework
答案 1 :(得分:0)
django.core.handlers.wsgi.STATUS_CODE_TEXT
。
django.http.responses.REASON_PHRASES和django.core.handlers.wsgi.STATUS_CODE_TEXT已被删除。使用Python的stdlib代替:Python 3的http.client.responses和Python 2的httplib.responses。