Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Strawberry-Django best practices — DjangoOptimizerExtension, DataLoader, type-hint-first schemas, CRUD mutations, filters/pagination/Relay, permission extensions, security hardening, async/subscriptions, and testing. Load when working with strawberry-graphql-django.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 6% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 15% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 13% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 3% | 0% |
Strawberry-Django takes a very different shape from Graphene: it is type-hint-first, uses schema extensions (not middleware), ships a built-in query optimizer, generates CRUD mutations/filters/pagination from Django models, and is async-native. The references below focus on what is specific to Strawberry, not general GraphQL.
| Topic | Reference | Use for | | --------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | | DjangoOptimizerExtension | references/optimizer.md | Automatic only/select_related/prefetch_related/annotate from AST, hint fields, custom resolver optimization, edge cases | | N+1 and DataLoaders | references/n-plus-one.md | When the optimizer cannot help, async DataLoader in get_context, priming, combining with the optimizer |
| Topic | Reference | Use for | | ----------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | | Types and Fields | references/types-and-fields.md | @strawberry_django.type, auto, computed fields, get_queryset, model_property, enum generation, field descriptions from help_text | | Mutations | references/mutations.md | mutations.create/update/delete, NodeInput, partial inputs, handle_django_errors, custom mutations, transaction atomicity, batch operations | | Filters, Pagination, Relay | references/filters-pagination-relay.md | @strawberry_django.filter, custom filter_field, @strawberry_django.order, offset vs DjangoListConnection vs DjangoCursorConnection, relay.Node and GlobalID |
| Topic | Reference | Use for | | ---------------------- | --------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | | Permissions & Security | references/permissions-and-security.md | IsAuthenticated/IsStaff/HasPerm/HasRetvalPerm/HasSourcePerm, django-guardian object-level perms, DisableIntrospection, QueryDepthLimiter, MaxTokensLimiter, MaxAliasesLimiter, error masking |
| Topic | Reference | Use for | | ------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | | Async and Subscriptions | references/async-and-subscriptions.md | AsyncGraphQLView, sync_to_async ORM access, Channels + AuthGraphQLProtocolTypeRouter, broadcasting subscriptions, pitfalls mixing sync and async resolvers |
| Topic | Reference | Use for | | ------- | ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- | | Testing | references/testing.md | strawberry_django.test.client.TestClient, client.login(), assertNumQueries for optimizer regressions, async tests, snapshot schema diffs |
Other measured skills in the registry, with their headline benchmark lift.