openedx / openedx/openedx-platform
[DEPR]: Drop `REGISTRATION_EXTENSION_FORM` django setting
@BryanttV is already working on this.
Since Apr 22, 2026.
- Dominant language
- Python
- Stars
- 8.2k
- Forks
- 4.4k
- Avg merge
- 6d 18h
- Merged PRs (30d)
- 42
Description
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
- Merge the current PR that introduces
PROFILE_EXTENSION_FORM(https://github.com/openedx/openedx-platform/pull/37119) - Write and publish release notes and technical documentation for operators, explaining how to migrate from
REGISTRATION_EXTENSION_FORMtoPROFILE_EXTENSION_FORMin the Verawood Release Notes
Feature Removal Tasks
With this PR (https://github.com/openedx/openedx-platform/pull/38637)
- Remove the code and references to the
REGISTRATION_EXTENSION_FORMsetting from the codebase. - Remove any temporary fallback logic left in place to support the old behavior in account settings and registration.
- Update all official documentation to remove references to the deprecated setting.
Related Links
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.