Skip to content

Commit 3f239e9

Browse files
committed
fix: only updates the payload fields
1 parent 82b7046 commit 3f239e9

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
@@ -514,12 +514,14 @@ def _update_extended_profile_if_needed(
514514
- Associate the model instance with the user if it's a new instance
515515
- Log any errors that occur during the save process
516516
"""
517-
if "extended_profile" in data:
517+
updated_fields = []
518+
new_extended_profile_fields = data.get("extended_profile")
519+
if new_extended_profile_fields:
518520
meta = user_profile.get_meta()
519-
new_extended_profile = data["extended_profile"]
520-
for field in new_extended_profile:
521+
for field in new_extended_profile_fields:
521522
field_name = field["field_name"]
522523
new_value = field["field_value"]
524+
updated_fields.append(field_name)
523525
meta[field_name] = new_value
524526
user_profile.set_meta(meta)
525527
user_profile.save()
@@ -529,7 +531,9 @@ def _update_extended_profile_if_needed(
529531
extended_profile_model = extended_profile_form.save(commit=False)
530532
if not hasattr(extended_profile_model, "user") or extended_profile_model.user is None:
531533
extended_profile_model.user = user_profile.user
532-
extended_profile_model.save()
534+
extended_profile_model.save()
535+
else:
536+
extended_profile_model.save(update_fields=updated_fields)
533537
except Exception as e: # pylint: disable=broad-exception-caught
534538
logger.error("Error saving extended profile model: %s", e)
535539

0 commit comments

Comments
 (0)