0

我想将 Swagger 添加到 Django 休息框架,但我无法获取 POST 正文参数...

我所做的:

serrings.py

INSTALLED_APPS = [
   ....
   'rest_framework_swagger',
]


REST_FRAMEWORK = {
   'DEFAULT_PARSER_CLASSES': [
       'rest_framework.parsers.FormParser',
       'rest_framework.parsers.MultiPartParser',
       'rest_framework.parsers.JSONParser',
   ]
}

网址.py

schema_view = get_swagger_view(title='My API')
urlpatterns = [
    path('', schema_view),
    ...
]

视图.py

class MyView(APIView):

    def post(self, request, format=None):
        ...
        return Response(something)

但我的招摇总是看起来像:

在此处输入图像描述

在这种情况下,我无法发布我的身体参数(json)来尝试一下......如何解决这个问题

4

2 回答 2

1

swagger 从序列化程序类中选择字段名称,因此您必须在视图中添加序列化程序类名称。

class MyView(APIView):
    serializer_class = SerializerclassName
    def post(self, request, format=None):
        ...
        return Response(something)
于 2018-11-26T11:08:35.337 回答
0

您需要添加serializer_class. 例如,

class PostSomething(generics.CreateAPIView):
    serializer_class = rest_framework.serializers.Serializer # here
    permission_classes = (AllowAny,)
    allowed_methods = ('POST',)
于 2021-06-24T01:01:42.087 回答