Graphene-Django-Extras Documentation¶
This package adds some extra functionalities to graphene-django to facilitate the graphql use without Relay:
- Allow pagination and filtering on Queries
- Allow defining DjangoRestFramework serializers based on Mutations
- Allow using Directives on Queries and Fragments
Subscription Support
Subscription support was moved to graphene-django-subscriptions.
Key Features¶
🔍 Fields¶
- DjangoObjectField - Single object queries with automatic ID filtering
- DjangoFilterListField - List queries with filtering
- DjangoFilterPaginateListField - List queries with filtering and pagination
- DjangoListObjectField - :material-star: Recommended for Queries
🧬 Types¶
- DjangoListObjectType - :material-star: Recommended for Types
- DjangoInputObjectType - Input types for mutations
- DjangoSerializerType - :material-star: Recommended for quick setup
⚡ Mutations¶
- DjangoSerializerMutation - :material-star: Recommended for Mutations
📄 Pagination¶
- LimitOffsetGraphqlPagination - Offset-based pagination
- PageGraphqlPagination - Page-based pagination
🎯 Directives¶
- String formatting - Case transformation, encoding, manipulation
- Number formatting - Currency, mathematical operations
- Date formatting - Custom date formats with python-dateutil
- List operations - Shuffle, sample operations
Quick Example¶
Basic Usage
from graphene_django_extras import (
DjangoListObjectType,
DjangoSerializerMutation,
LimitOffsetGraphqlPagination
)
class UserListType(DjangoListObjectType):
class Meta:
model = User
pagination = LimitOffsetGraphqlPagination(default_limit=25)
class UserMutation(DjangoSerializerMutation):
class Meta:
serializer_class = UserSerializer
Getting Started¶
Ready to dive in? Check out our Installation Guide to get started, or jump straight to the Quick Start for a hands-on tutorial.
Community & Support¶
- GitHub Issues: Report bugs or request features
- PyPI Package: Install from PyPI
- Source Code: View on GitHub