Django POST和PUT方法的有效载荷

Django POST和PUT方法的有效载荷,django,django-rest-framework,swagger,drf-yasg,Django,Django Rest Framework,Swagger,Drf Yasg,我正在使用yasg库为我的API制作文档。。 但我有一个问题: GET和DELETE方法很好,但是当我想使用POST或PUT方法时,我不能为它们定义有效负载。。 在参数部分,它说:没有参数 这是我的代码: class CreateGroupView(APIView): def post(self, request): try: serializer = GroupSerializer(data=request.data) i

我正在使用yasg库为我的API制作文档。。 但我有一个问题: GET和DELETE方法很好,但是当我想使用POST或PUT方法时,我不能为它们定义有效负载。。 在参数部分,它说:没有参数 这是我的代码:

class CreateGroupView(APIView):
    def post(self, request):
        try:
            serializer = GroupSerializer(data=request.data)
            if serializer.is_valid():
                serializer.save()
                return Response(serializer.data, status.HTTP_201_CREATED)
            else:
                return Response(status=status.HTTP_400_BAD_REQUEST)
        except:
            return Response({'data': 'somethings wrong'}, status.HTTP_500_INTERNAL_SERVER_ERROR)


我能做什么?

这很好。这在响应部分显示了必填字段。但是,由于使用参数测试该方法,有没有办法在参数部分显示类似的内容?我认为
手动参数
是您需要的。我已经更新了答案。就这样..谢谢你的帮助兄弟…老兄,我测试了这个,但它不起作用..它向我显示了参数,但当我要填充它们时,我修改了错误(无效数据)…更新你的问题。发布您需要的序列化程序和参数
from drf_yasg import openapi
from drf_yasg.utils import swagger_auto_schema

type_param = openapi.Parameter('type', in_=openapi.IN_QUERY, description='Type parameter', type=openapi.TYPE_INTEGER)
q_param = openapi.Parameter('q', in_=openapi.IN_QUERY, description='Seach query', type=openapi.TYPE_STRING)

class CreateGroupView(APIView):

    @swagger_auto_schema(
        responses={status.HTTP_201_CREATED: GroupSerializer()},
        operation_description="Some description here...",
        manual_parameters=[type_param, q_param]
    )
    def post(self, request):
        try:
            serializer = GroupSerializer(data=request.data)
            if serializer.is_valid():
                serializer.save()
                return Response(serializer.data, status.HTTP_201_CREATED)
            else:
                return Response(status=status.HTTP_400_BAD_REQUEST)
        except:
            return Response({'data': 'somethings wrong'}, status.HTTP_500_INTERNAL_SERVER_ERROR)