RFC Start Date
2026-04-21
Target Plan Accepted Date
2026-05-05
Target Transition Unblocked Date
2026-04-22 (Estimated date when the current PR will be merged)
Earliest Breaking Changes Unblocked Date
2026-05
Earliest Open edX Named Release with Breaking Changes
Verawood - 2026-04
Rationale
The current REGISTRATION_EXTENSION_FORM setting has a name that no longer accurately reflects its usage (it implies it is only for registration, whereas it affects the entire profile).
The main issue lies in how it handles data. In Account Settings, custom fields are currently only fetched from and stored in the meta field of the UserProfile model, entirely ignoring the custom model. This causes a lack of consistency, prevents a correct updating of extended profile fields via the Account Settings API, and lacks model-level validation.
Removal
The deprecated Django setting REGISTRATION_EXTENSION_FORM and its legacy data handling logic (which relies exclusively on UserProfile.meta for reads/writes in Account Settings) will be removed.
Replacement
The functionality will be replaced by the new Django setting PROFILE_EXTENSION_FORM. This new setting introduces dual storage (in both the custom model and meta) and consistent reading by prioritizing the custom model.
Deprecation
No response
Additional Info
There is a critical migration consideration for operators: when switching to PROFILE_EXTENSION_FORM, extended profile data is read directly from the configured custom model. If a user has existing data in the legacy meta field but no record in the new model, their fields will appear empty in the UI.
Once the user updates their profile, the model record will be created and properly populated.
Optional: Depending on the needs of each instance, operators might need to write and run a custom data migration script to move existing information from meta to their custom models before activating the new setting, if they wish to prevent the fields from temporarily appearing empty.
Transition Unblocked Tasks
Feature Removal Tasks
Related Links
RFC Start Date
2026-04-21
Target Plan Accepted Date
2026-05-05
Target Transition Unblocked Date
2026-04-22 (Estimated date when the current PR will be merged)
Earliest Breaking Changes Unblocked Date
2026-05
Earliest Open edX Named Release with Breaking Changes
Verawood - 2026-04
Rationale
The current
REGISTRATION_EXTENSION_FORMsetting has a name that no longer accurately reflects its usage (it implies it is only for registration, whereas it affects the entire profile).The main issue lies in how it handles data. In Account Settings, custom fields are currently only fetched from and stored in the
metafield of theUserProfilemodel, entirely ignoring the custom model. This causes a lack of consistency, prevents a correct updating of extended profile fields via the Account Settings API, and lacks model-level validation.Removal
The deprecated Django setting
REGISTRATION_EXTENSION_FORMand its legacy data handling logic (which relies exclusively onUserProfile.metafor reads/writes in Account Settings) will be removed.Replacement
The functionality will be replaced by the new Django setting
PROFILE_EXTENSION_FORM. This new setting introduces dual storage (in both the custom model andmeta) and consistent reading by prioritizing the custom model.Deprecation
No response
Additional Info
There is a critical migration consideration for operators: when switching to
PROFILE_EXTENSION_FORM, extended profile data is read directly from the configured custom model. If a user has existing data in the legacymetafield but no record in the new model, their fields will appear empty in the UI.Once the user updates their profile, the model record will be created and properly populated.
Optional: Depending on the needs of each instance, operators might need to write and run a custom data migration script to move existing information from
metato their custom models before activating the new setting, if they wish to prevent the fields from temporarily appearing empty.Transition Unblocked Tasks
PROFILE_EXTENSION_FORM(feat: use extended profile model in account settings #37119)REGISTRATION_EXTENSION_FORMtoPROFILE_EXTENSION_FORMin the Verawood Release NotesFeature Removal Tasks
REGISTRATION_EXTENSION_FORMsetting from the codebase.Related Links