This is a comprehensive pattern library for Django REST Framework APIs, built around the Prowler project's conventions but applicable to any DRF codebase that takes API design seriously. It enforces separation of serializers by operation (read, create, update, include), handles N+1 queries with explicit prefetch patterns, and includes decision trees for choosing the right base classes. The swagger_fake_view handling and extend_schema_field decorators show this is battle-tested with drf-spectacular. If you're building JSON:API endpoints with DRF and want opinionated guidance on serializer inheritance, filterset patterns, and permission handling, this gives you working examples and checklists. The no-auto-increment-PKs and no-trailing-slashes rules hint at strong API design opinions underneath.

skills.sh installs
482
GitHub stars
15.2K
last updated
Aug 21, 2026

Install

$ npx -y skills add prowler-cloud/prowler --skill django-drf --agent claude-code

Installs into .claude/skills of the current project.

Files

Critical Patterns

  • ALWAYS separate serializers by operation: Read / Create / Update / Include
  • ALWAYS use filterset_class for complex filtering (not filterset_fields)
  • ALWAYS validate unknown fields in write serializers (inherit BaseWriteSerializer)
  • ALWAYS use select_related/prefetch_related in get_queryset() to avoid N+1
  • ALWAYS handle swagger_fake_view in get_queryset() for schema generation
  • ALWAYS use @extend_schema_field for OpenAPI docs on SerializerMethodField
  • NEVER put business logic in serializers - use services/utils
  • NEVER use auto-increment PKs - use UUIDv4 or UUIDv7
  • NEVER use trailing slashes in URLs (trailing_slash=False)

Note: swagger_fake_view is specific to drf-spectacular for OpenAPI schema generation.


Implementation Checklist

When implementing a new endpoint, review these patterns in order:

Sponsors

Details

Repository
github.com/prowler-cloud/prowler
Categories
Backend & APIs, Security, Python, Cloud & Infrastructure
First seen
Jun 3, 2026

More from prowler-cloud/prowler

All 6
1jezweb avatarai-sdk-corejezweb/claude-skillsBuild backend AI with Vercel AI SDK v6 stable. Covers Output API (replaces generateObject/streamObject), speech synthesis, transcription, embeddings, MCP tools 479skills.sh installs
2aj-geddes avatardjango-applicationaj-geddes/useful-ai-promptsDevelop production-grade Django applications with models, views, ORM queries, authentication, and admin interfaces. Use when building web applications, managing476skills.sh installs
3senpi-ai avatarsenpi-onboardsenpi-ai/senpi-skillsOnboards an AI agent into the Senpi trading platform by creating an account, generating an API key, and configuring the Senpi MCP server connection. Supports wa475skills.sh installs
4madteacher avatardart-driftmadteacher/mad-agents-skillsBuild, fix, audit, and migrate Drift persistence in Dart CLI, server-side, and non-Flutter desktop apps. Use when adding SQLite with package:drift/native.dart, 474skills.sh installs
5ccheney avatarmermaid-diagramsccheney/robust-skillsProactively suggest diagrams when explaining complex systems. Triggers on diagrams, charts, visualizations, flowcharts, sequence diagrams, architecture diagrams473skills.sh installs
6manutej avatarnextjs-developmentmanutej/luxor-claude-marketplaceComprehensive Next.js development skill covering App Router, Server Components, data fetching, routing patterns, API routes, middleware, and full-stack Next.js 473skills.sh installs