@@ -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