AttributeError: 'AutoSchema' object has no attribute 'get_link' と出てきてDRFのAPIドキュメント生成が使えない場合の対処
はじめに
Django REST framework(DRF)ではかんたんな手順でAPIスキーマをきれいなUIで確認する事ができます。
こういう感じでurls.pyに記述するだけで実装できます.
from django.urls import path, include
from rest_framework.documentation import include_docs_urls
docs_view = include_docs_urls(
title='my drf API',
description='This is an awesome API',
)
urlpatterns = [
path('docs/', docs_view),
]
エラーがでた
docs/
にアクセスして確認してみると
AttributeError: 'AutoSchema' object has no attribute 'get_link'
と表示されエラーになりました.なんでや
環境
Python 3.7
django 2.2.5
djangorestframework 3.10.3
coreapi 2.3.3
DRF 3.10以上だと発生するエラー
3.10 Announcement
こちらによるとdrf3.10からはSchema生成にCoreAPIからOpenAPIを用いるようになり,将来的にはバージョン3.12でCoreAPIはDRFから削除される方針とのことです.
今回利用したモジュールはCoreAPIを使っているんですね.
OpenAPIのかわりにCoreAPIをつかうためにはsettings.py
に以下を書き加えます.
REST_FRAMEWORK = {
...
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema'
}
動いた!!!
まとめ
drf3.10以降で
AttributeError: 'AutoSchema' object has no attribute 'get_link'
とエラーが出たり,CoreAPIが必要なモジュールを使うときは以下を記述する.
REST_FRAMEWORK = {
...
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema'
}
最後までお読みいただきありがとうございます.
Author And Source
この問題について(AttributeError: 'AutoSchema' object has no attribute 'get_link' と出てきてDRFのAPIドキュメント生成が使えない場合の対処), 我々は、より多くの情報をここで見つけました https://qiita.com/checche/items/b705a8a2c6e7858d203a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .