Skip to content

[DEPR]: Drop REGISTRATION_EXTENSION_FORM django setting #38409

@BryanttV

Description

@BryanttV

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

  • Remove the code and references to the REGISTRATION_EXTENSION_FORM setting 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

Metadata

Metadata

Assignees

Labels

deprProposal for deprecation & removal per OEP-21

Type

Projects

Status

Draft

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions