0

默认情况下,django rest swagger不显示 Serializer inDELETE方法。但是,由于某种原因,我需要实施防止删除和强制删除案例。

因此,基本上要实现它,我们需要在请求正文中添加例如这个示例:

{
  "forceDelete": true
}

我正在尝试更新get_serializer_class函数内部的序列化程序,但它仍然无法正常工作。

class ForceDeleteSerializer(serializers.Serializer):
    force_delete = serializers.BooleanField(default=False)


class GroupViewSet(ModelViewSet):
    permission_classes = (IsOrganizationAdmin,)
    serializer_class = GroupSerializer
    search_fields = ('display_name',)

    def get_serializer_class(self):
        if self.action == 'destroy':
            return ForceDeleteSerializer
        return self.serializer_class

删除动作

4

1 回答 1

0

最后,正如@LinhNguyen 所建议的那样使用drf-yasg,并且使用swagger_auto_schema它有效。

from drf_yasg.utils import swagger_auto_schema

@swagger_auto_schema(request_body=ForceDeleteSerializer)
def destroy(self, request, *args, **kwargs):
    ....

预习

于 2020-12-21T10:28:22.127 回答