Skip to content

Commit ac6c456

Browse files
committed
fix: only updates the payload fields
1 parent 4a2bd5a commit ac6c456

File tree

1 file changed

+8
-4
lines changed
  • openedx/core/djangoapps/user_api/accounts

1 file changed

+8
-4
lines changed

openedx/core/djangoapps/user_api/accounts/api.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -506,12 +506,14 @@ def _update_extended_profile_if_needed(
506506
- Associate the model instance with the user if it's a new instance
507507
- Log any errors that occur during the save process
508508
"""
509-
if "extended_profile" in data:
509+
updated_fields = []
510+
new_extended_profile_fields = data.get("extended_profile")
511+
if new_extended_profile_fields:
510512
meta = user_profile.get_meta()
511-
new_extended_profile = data["extended_profile"]
512-
for field in new_extended_profile:
513+
for field in new_extended_profile_fields:
513514
field_name = field["field_name"]
514515
new_value = field["field_value"]
516+
updated_fields.append(field_name)
515517
meta[field_name] = new_value
516518
user_profile.set_meta(meta)
517519
user_profile.save()
@@ -521,7 +523,9 @@ def _update_extended_profile_if_needed(
521523
extended_profile_model = extended_profile_form.save(commit=False)
522524
if not hasattr(extended_profile_model, "user") or extended_profile_model.user is None:
523525
extended_profile_model.user = user_profile.user
524-
extended_profile_model.save()
526+
extended_profile_model.save()
527+
else:
528+
extended_profile_model.save(update_fields=updated_fields)
525529
except Exception as e: # pylint: disable=broad-exception-caught
526530
logger.error("Error saving extended profile model: %s", e)
527531

0 commit comments

Comments
 (0)