4

我一直在尝试将 Swagger 与 Django Application 集成并遇到此错误:规范中未定义操作!

我的项目结构是

App 
    views.py 
    urls.py
    ..
App2 
    settings.py 
    urls.py
    ..

我将 drf_yasg 用于我的目的。我已经在 settings.py 和 App2 中包含了所有详细信息,我在 urls.py 中有这个:

from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg import openapi

schema_view = get_schema_view(
   openapi.Info(
      title="Testing",
      default_version='v1',
      description="Doc Integration",
      terms_of_service="https://www.google.com/policies/terms/",
      contact=openapi.Contact(email="abc@abc.com"),
      license=openapi.License(name="BSD License"),
   ),
   public=True,
   permission_classes=(permissions.AllowAny,),
)

urlpatterns=[path("admin/", admin.site.urls),
            path("", include("app.urls")),
            path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
            path('redoc', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),]

我的类视图(例如(class Att(generic.TemplateView)和方法在App下的views.py中声明。我尝试了@swagger_auto_schema,@api_view等方法来在文档中显示应用程序类和函数。但它只返回No规范中定义的操作!。

我也尝试使用路由器来注册视图,但没有成功,甚至 django-rest-swagger 也失败了。任何帮助表示赞赏。谢谢!

4

1 回答 1

1

我有一个由 Django 组成的项目,我是 DRF 的新手。我看到“规范中没有定义任何操作!” 在尝试作为 Swagger 生成器之一的 def-yasg 时也是如此。希望这种方式对你有用。我从rest_framework.views导入->导入APIView。

views.py 中的
类类似于 FeedView(View) 类
,当我更改
类 FeedView(APIView)之类的类时,这些功能就会出现

我需要处理 @swagger_auto_schema、@api_view 以使我的 API 文档使用适当的参数。

于 2021-04-24T13:49:50.913 回答