diff --git a/rest_framework/decorators.py b/rest_framework/decorators.py index 449ba0a29..9b67323af 100644 --- a/rest_framework/decorators.py +++ b/rest_framework/decorators.py @@ -68,11 +68,25 @@ def api_view(http_method_names): WrappedAPIView.permission_classes = getattr(func, 'permission_classes', APIView.permission_classes) + WrappedAPIView.permission_classes = getattr(func, 'permission_classes', + APIView.permission_classes) + + def get_serializer_class(self): + return getattr(func, 'serializer_class', None) + + WrappedAPIView.get_serializer_class = types.MethodType(get_serializer_class, WrappedAPIView) return WrappedAPIView.as_view() return decorator +def serializer_class(clazz): + def decorator(func): + func.serializer_class = clazz + return func + return decorator + + def renderer_classes(renderer_classes): def decorator(func): func.renderer_classes = renderer_classes