在Django Rest Framework Swagger中发布主体参数

时间:2018-11-26 08:52:59

标签: post django-rest-framework swagger django-swagger

我想将Swagger添加到Django rest框架中,但是我无法获取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',
   ]
}
  

urls.py

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

Views.py

class MyView(APIView):

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

但是我的招摇总是像:

enter image description here

在这种情况下,我无法发布我的body参数(json)进行尝试... 如何解决此问题

2 个答案:

答案 0 :(得分:0)

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

class MyView(APIView):
    serializer_class = SerializerclassName
    def post(self, request, format=None):
        ...
        return Response(something)

答案 1 :(得分:0)

您需要添加 serializer_class。 例如,

class PostSomething(generics.CreateAPIView):
    serializer_class = rest_framework.serializers.Serializer # here
    permission_classes = (AllowAny,)
    allowed_methods = ('POST',)