Django REST Framework错误与accepted_renderer

时间:2018-11-30 16:49:38

标签: rest api django-rest-framework

我对DFR相当了解,因此我正在按照教程学习。 到目前为止,一切都很好,但是在最后一部分,here中,我必须向API添加一个架构,并按照说明进行操作,因此安装coreapi并添加

from rest_framework.schemas import get_schema_view

schema_view = get_schema_view(title='Pastebin API')

urlpatterns = [
    path('schema/', schema_view),
    ...
]

在tutorial / urls.py中,所以我完整的tutorial / urls.py是:

from django.conf.urls import url
from django.contrib import admin
from django.urls import path, include

from rest_framework.schemas import get_schema_view

schema_view = get_schema_view(title='Pastebin API')

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    path('', include('snippets.urls')),
    path('api-auth/', include('rest_framework.urls')),
    path('schema/', schema_view),
]

但是,如果我从http://127.0.0.1:8000/schema/的浏览器访问/ schema /,则会得到:

AttributeError at /schema/

'Request' object has no attribute 'accepted_renderer'

由于我按照本教程的说明进行操作,因此我不知道如何解决该错误。

我的conf是:

coreapi             2.3.3     
coreschema          0.0.4     
Django              2.1.3     
djangorestframework 3.9.0  

如果需要,您可以查看本教程的代码here,而here是get_schema_view文档。

2 个答案:

答案 0 :(得分:1)

有两种解决方案:

安装pyyaml:

pip install pyyaml

OR

还原DRF:

pip install djangorestframework==3.8.0

答案 1 :(得分:0)

本教程使用HTTPie从命令行向该端点发出请求,而不是使用需要指定渲染器的浏览器。如果您希望通过浏览器进行操作,请指定documentation描述的渲染器