>
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:
don't have the plugin yet? install it then click "run inline in claude" again.