@@ -280,6 +280,9 @@ def _get_extended_profile_form_instance(
280280 user (User): User instance to associate with the extended profile
281281 field_errors (dict): Dictionary to collect validation errors if form creation fails
282282
283+ Raises:
284+ AccountUpdateError: If there is an error creating the extended profile form
285+
283286 Returns:
284287 Optional[forms.Form]: Extended profile form instance with user data, or None if
285288 no extended profile form is configured or creation fails
@@ -304,12 +307,7 @@ def _get_extended_profile_form_instance(
304307 logger .warning ("Extended profile model not available: %s" , str (e ))
305308 return None
306309 except Exception as e : # pylint: disable=broad-exception-caught
307- logger .error ("Unexpected error creating custom form for user %s: %s" , user .username , str (e ))
308- field_errors ["extended_profile" ] = {
309- "developer_message" : f"Error creating custom form: { str (e )} " ,
310- "user_message" : _ ("There was an error processing the extended profile information" ),
311- }
312- return None
310+ raise AccountUpdateError (f"Error creating custom form: { str (e )} " ) from e
313311
314312
315313def _validate_extended_profile_form_and_collect_errors (extended_profile_form : forms .Form , field_errors : dict ) -> None :
@@ -319,17 +317,23 @@ def _validate_extended_profile_form_and_collect_errors(extended_profile_form: fo
319317 Args:
320318 extended_profile_form (forms.Form): The extended profile form to validate
321319 field_errors (dict): Dictionary to collect validation errors
322- """
323- if not extended_profile_form .is_valid ():
324- logger .info ("Extended profile form validation failed with errors: %s" , extended_profile_form .errors )
325320
326- for field_name , field_errors_list in extended_profile_form .errors .items ():
327- first_error = field_errors_list [0 ] if field_errors_list else "Unknown error"
328-
329- field_errors [field_name ] = {
330- "developer_message" : f"Error in extended profile field { field_name } : { first_error } " ,
331- "user_message" : str (first_error ),
332- }
321+ Raises:
322+ AccountUpdateError: If there is an error validating the extended profile form
323+ """
324+ try :
325+ if not extended_profile_form .is_valid ():
326+ logger .info ("Extended profile form validation failed with errors: %s" , extended_profile_form .errors )
327+
328+ for field_name , field_errors_list in extended_profile_form .errors .items ():
329+ first_error = field_errors_list [0 ] if field_errors_list else "Unknown error"
330+
331+ field_errors [field_name ] = {
332+ "developer_message" : f"Error in extended profile field { field_name } : { first_error } " ,
333+ "user_message" : str (first_error ),
334+ }
335+ except Exception as error : # pylint: disable=broad-exception-caught
336+ raise AccountUpdateError (f"Error thrown when validating extended profile form: '{ str (error )} '" ) from error
333337
334338
335339def _validate_read_only_fields (user , data , field_errors ):
0 commit comments