问题描述
以前,我使用的是drf-yasg
,但想更新以使用OpenAPI3。我试图切换到drf-spectacular
。在instruction之后,我运行了pip install drf-spectacular
,删除了对drf-yasg
包的所有引用,并按如下所示更新了Settings.py
:
INSTALLED_APPS = [
...
"drf_spectacular",]
REST_FRAMEWORK = {
"DEFAULT_SCHEMA_CLASS": "drf_spectacular.openapi.AutoSchema",}
当我使用CLI生成架构时,出现以下提示AssertionError
。如果有人以前遇到过这个问题并且有任何见识,将不胜感激!
我正在使用Python 3.7,Django 3.0,Django Rest Framework 3.11和DRF Spectacular 0.10.0。
Traceback (most recent call last):
File "manage.py",line 23,in <module>
main()
File "manage.py",line 19,in main
execute_from_command_line(sys.argv)
File "/opt/anaconda3/envs/dev/lib/python3.7/site-packages/django/core/management/__init__.py",line 401,in execute_from_command_line
utility.execute()
File "/opt/anaconda3/envs/dev/lib/python3.7/site-packages/django/core/management/__init__.py",line 395,in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/opt/anaconda3/envs/dev/lib/python3.7/site-packages/django/core/management/base.py",line 328,in run_from_argv
self.execute(*args,**cmd_options)
File "/opt/anaconda3/envs/dev/lib/python3.7/site-packages/django/core/management/base.py",line 369,in execute
output = self.handle(*args,**options)
File "/opt/anaconda3/envs/dev/lib/python3.7/site-packages/drf_spectacular/management/commands/spectacular.py",line 50,in handle
schema = generator.get_schema(request=None,public=True)
File "/opt/anaconda3/envs/dev/lib/python3.7/site-packages/drf_spectacular/generators.py",line 187,in get_schema
paths=self.parse(request,public),File "/opt/anaconda3/envs/dev/lib/python3.7/site-packages/drf_spectacular/generators.py",line 160,in parse
'Incompatible AutoSchema used on View. Is DRF\'s DEFAULT_SCHEMA_CLASS '
AssertionError: Incompatible AutoSchema used on View. Is DRF's DEFAULT_SCHEMA_CLASS pointing to "drf_spectacular.openapi.AutoSchema" or any other drf-spectacular compatible AutoSchema?
解决方法
请更新Django Rest Framework 3.11至3.12,它将起作用。