{"library":"strawberry-graphql-django","title":"Strawberry GraphQL Django Integration","type":"library","description":"Strawberry GraphQL Django integration provides powerful tools to build GraphQL APIs with Django. It automatically generates GraphQL types, queries, mutations, and resolvers from your Django models with full type safety. The library is actively maintained, currently at version 0.82.1, and supports Django 4.2-6.0 and Python 3.10-3.14, with regular updates.","language":"python","status":"active","last_verified":"Thu May 21","install":{"commands":["pip install strawberry-graphql-django","pip install strawberry-graphql-django[polymorphic]"],"cli":null},"imports":["import strawberry_django\n@strawberry_django.type(...)","from strawberry_django import field","from strawberry.django.views import AsyncGraphQLView","from strawberry_django.optimizer import DjangoOptimizerExtension"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":"https://strawberry.rocks/docs/django","github":"https://github.com/strawberry-graphql/strawberry-django","docs":"https://strawberry.rocks/docs/django","changelog":null,"pypi":"https://pypi.org/project/strawberry-graphql-django/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"import strawberry\nimport strawberry_django\nfrom django.db import models\nfrom strawberry.django.views import AsyncGraphQLView\nfrom strawberry_django.optimizer import DjangoOptimizerExtension\n\n# models.py (excerpt)\nclass Color(models.Model):\n    name = models.CharField(max_length=20)\n\n    def __str__(self):\n        return self.name\n\nclass Fruit(models.Model):\n    name = models.CharField(max_length=20)\n    color = models.ForeignKey(Color, on_delete=models.CASCADE, related_name=\"fruits\")\n\n    def __str__(self):\n        return self.name\n\n# types.py (excerpt, often in app.types.py)\n@strawberry_django.type(Color)\nclass ColorType:\n    id: strawberry.ID\n    name: str\n    fruits: list['FruitType'] # Forward reference\n\n@strawberry_django.type(Fruit)\nclass FruitType:\n    id: strawberry.ID\n    name: str\n    color: ColorType\n\n# schema.py (excerpt, often in project.schema.py)\n@strawberry.type\nclass Query:\n    @strawberry_django.field\n    def fruits(self) -> list[FruitType]:\n        return Fruit.objects.all()\n\n    @strawberry_django.field\n    def colors(self) -> list[ColorType]:\n        return Color.objects.all()\n\nschema = strawberry.Schema(\n    query=Query,\n    extensions=[\n        DjangoOptimizerExtension, # Recommended for N+1 query optimization\n    ]\n)\n\n# urls.py (excerpt)\n# from django.urls import path\n# from myproject.schema import schema # Assuming schema defined in myproject/schema.py\n# from strawberry.django.views import AsyncGraphQLView\n#\n# urlpatterns = [\n#     path(\"graphql/\", AsyncGraphQLView.as_view(schema=schema)),\n# ]\n\n# To run this example, you'd typically set up a Django project:\n# 1. Create a Django project and app.\n# 2. Add 'strawberry.django' and your app to INSTALLED_APPS in settings.py.\n# 3. Define models (Color, Fruit) in your app's models.py.\n# 4. Define types (ColorType, FruitType) in your app's types.py.\n# 5. Define Query and Schema in your project's schema.py.\n# 6. Add the GraphQL endpoint to your project's urls.py.","lang":"python","description":"This quickstart demonstrates how to define Django models, create corresponding Strawberry GraphQL types using `strawberry_django.type` and `auto`, and then expose them via a GraphQL `Query` field. It also shows the integration of `DjangoOptimizerExtension` for performance and how to set up the Django URLconf to serve the GraphQL API. The example defines simple Fruit and Color models with a foreign key relationship.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-21","installed_version":"0.65.1","pypi_latest":"0.84.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":4.7,"avg_import_s":1.78,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.55,"mem_mb":28,"disk_size":"74.6M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.5,"mem_mb":28,"disk_size":"74.6M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"polymorphic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.55,"mem_mb":28,"disk_size":"75.3M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"polymorphic","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.97,"mem_mb":28,"disk_size":"75.3M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.5,"import_time_s":1.21,"mem_mb":28,"disk_size":"75M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.5,"mem_mb":28,"disk_size":"75M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"polymorphic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.7,"import_time_s":1.28,"mem_mb":28,"disk_size":"76M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"polymorphic","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.19,"mem_mb":28,"disk_size":"76M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.73,"mem_mb":30.7,"disk_size":"80.7M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.13,"mem_mb":30.7,"disk_size":"80.7M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"polymorphic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.74,"mem_mb":30.7,"disk_size":"81.5M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"polymorphic","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.19,"mem_mb":30.7,"disk_size":"81.5M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.5,"import_time_s":1.66,"mem_mb":30.7,"disk_size":"81M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.73,"mem_mb":30.7,"disk_size":"81M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"polymorphic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.7,"import_time_s":1.66,"mem_mb":30.7,"disk_size":"82M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"polymorphic","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.61,"mem_mb":30.7,"disk_size":"82M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.93,"mem_mb":29.8,"disk_size":"71.9M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.06,"mem_mb":29.8,"disk_size":"71.9M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"polymorphic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.94,"mem_mb":29.8,"disk_size":"72.7M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"polymorphic","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.16,"mem_mb":29.8,"disk_size":"72.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.3,"import_time_s":1.94,"mem_mb":29.8,"disk_size":"72M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.31,"mem_mb":29.8,"disk_size":"72M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"polymorphic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.5,"import_time_s":1.88,"mem_mb":29.8,"disk_size":"73M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"polymorphic","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.09,"mem_mb":29.8,"disk_size":"73M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.86,"mem_mb":30.4,"disk_size":"71.8M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.17,"mem_mb":30.4,"disk_size":"71.7M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"polymorphic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.92,"mem_mb":30.4,"disk_size":"72.5M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"polymorphic","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.2,"mem_mb":30.4,"disk_size":"72.4M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.3,"import_time_s":1.82,"mem_mb":30.4,"disk_size":"72M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.39,"mem_mb":30.4,"disk_size":"72M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"polymorphic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.5,"import_time_s":1.87,"mem_mb":30.4,"disk_size":"73M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"polymorphic","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.07,"mem_mb":30.4,"disk_size":"73M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.53,"mem_mb":26.3,"disk_size":"72.6M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.51,"mem_mb":26.3,"disk_size":"72.6M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"polymorphic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.56,"mem_mb":26.3,"disk_size":"72.6M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"polymorphic","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.72,"mem_mb":26.3,"disk_size":"72.6M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":5.3,"import_time_s":1.45,"mem_mb":26.3,"disk_size":"73M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"strawberry-graphql-django","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.75,"mem_mb":26.3,"disk_size":"73M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"polymorphic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":5.3,"import_time_s":1.37,"mem_mb":26.3,"disk_size":"73M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"polymorphic","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.55,"mem_mb":26.3,"disk_size":"73M"}]}}