我想将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)
但是我的招摇总是像:
在这种情况下,我无法发布我的body参数(json)进行尝试... 如何解决此问题
答案 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',)