Migration from drf-flex-fields
If you are currently using the original drf-flex-fields package, migrating to
drf-flex-fields2 is straightforward and requires minimal changes to your codebase.
Installation
Assuming you are using pip for dependency management. Adapt to your package
manager, as needed:
Uninstall the old package:
pip uninstall drf-flex-fields
Install drf-flex-fields2:
pip install drf-flex-fields2
Update Imports
Replace all imports of rest_flex_fields with rest_flex_fields2 throughout
your codebase.
If you imported symbols from the package root, update those to module-level imports instead. Package-level re-exports were removed to fix import cycles during Django initialization.
Before:
from rest_flex_fields import FlexFieldsModelSerializer
After (module-level import):
from rest_flex_fields2.serializers import FlexFieldsModelSerializer
Update Django Settings
In your Django settings.py rename the variable REST_FLEX_FIELDS
to REST_FLEX_FIELDS2.
API Compatibility
The drf-flex-fields2 API is fully compatible with the original drf-flex-fields
package. All serializers, mixins, filters, and configuration options work exactly
the same way.
Stability: No breaking changes are planned in the foreseeable future.
Future guarantee: If breaking changes ever become necessary, the
drf-flex-fields2 project will strictly follow semantic versioning. This means you can safely update to patch and minor
versions (e.g., from 2.0.0 to 2.1.5) without worrying about breaking changes.
Breaking changes will only occur in major version releases (e.g., 2.x to 3.0),
and will be clearly documented in the changelog.
Testing Your Migration
After updating the imports, run your test suite to ensure everything works correctly:
python manage.py test
If you don’t have tests yet, we recommend adding them to your project to catch any integration issues early.
Troubleshooting
Import errors after migration?
Ensure you’ve updated all imports from
rest_flex_fieldstorest_flex_fields2Replace package-level imports with module-level imports (for example,
from rest_flex_fields2.serializers import FlexFieldsModelSerializer)Run
grep -rP "rest_flex_fields(?!2)" .to find any remaining old importsCheck virtualenv/venv activation:
pip list | grep drf-flex-fields
Other issues?
Check the issue tracker
The project is actively maintained and we’re happy to help!