Breaking Changes¶
One-to-Many Assign Type Parameter (v0.2.6)¶
Summary¶
CRUDOneToManyCreateInput and CRUDOneToManyUpdateInput now require an explicit assign type parameter to support GenericForeignKey relationships. This is a breaking change for type annotations.
Why This Change Was Made¶
GenericForeignKey assignments use a one-of input type rather than a simple ID. To support both FK and GFK in a typed way, the assign input type is now a generic parameter.
What You Need to Do¶
Update any usages of CRUDOneToManyCreateInput and CRUDOneToManyUpdateInput to include the assign type.
Migration Examples¶
Create Input¶
Update Input¶
Removal of Convenience Imports (v0.2.0)¶
Summary¶
All convenience imports have been removed from the main package __init__.py to prevent eager loading and resolve async context detection issues. This is a breaking change that requires updating all import statements in your code.
Why This Change Was Made¶
Convenience imports in __init__.py caused modules to be eagerly loaded during Django startup, which led to: - Field extensions being built in sync context during import time - Schema evaluation happening too early (before async context was available) - Crashes when mixing sync/async execution chains during testing
By removing these imports, modules are only loaded when explicitly imported, ensuring proper async context detection.
What You Need to Do¶
Update all imports to use direct module paths instead of importing from the main package.
Migration Examples¶
Field Extensions¶
JWT Authentication¶
Input Types¶
Decorators¶
Module Structure¶
The new import structure follows this pattern:
Need Help?¶
- Check the documentation for detailed examples
- All existing functionality remains the same - only import paths have changed