from drf_yasg.utils import swagger_auto_schema def add_swagger_summaries(viewset_class): """Add standard swagger summaries to a ModelViewSet class""" model_name = viewset_class.serializer_class.Meta.model.__name__.lower() # Apply decorators to the class methods for action, template in { 'list': f"List all {model_name}s", 'create': f"Create new {model_name}", 'retrieve': f"Get specific {model_name}", 'update': f"Update {model_name} completely", 'partial_update': f"Update {model_name} partially", 'destroy': f"Delete {model_name}", }.items(): if hasattr(viewset_class, action): method = getattr(viewset_class, action) if not hasattr(method, '_swagger_auto_schema'): setattr(viewset_class, action, swagger_auto_schema(operation_summary=template)(method)) return viewset_class