Estou desenvolvendo um projeto que tem um cliente mobile, que se comunica por meio de ApiRest com o backend em Django. Foi solicitado pelo desenvolvedor que eu retorne os erros contendo mais informações além do tipo do erro, como por exemplo o arquivo que ocorreu o erro, a linha, o método e a classe, daí pensei em adicionar no retorno um dicionário, contendo os dados solicitados.
Eu estou fazendo da seguinte forma:
class CustomException(Exception):
    def __init__(self, error_file, error_method, error_line, error_message, *args):
        data = {
            "error_file": error_file,
            "error_line": error_line,
            "error_method": error_method
        }
        args += (data, error_message)
        super(CustomException, self).__init__(*args)O retorno quando levanto a exception está assim:
{
  "code": "500",
  "error": "gerar_pix",
  "error_description": "(
       {'error_file': 'arquivo_xpto.py', 'error_line': 203, 'error_method': 'gerar_pix'}, 
       'Mensagem amigável de erro')"
}Eu não queria o dicionário (data) no error_description eu gostaria de retornar assim:
{
  "code": "500",
  "error": "gerar_pix",
  "error_description": "Mensagem amigável de erro",
  "error_data": {
        'error_file': 'arquivo_xpto.py', 
        'error_line': 203,  
        'error_method': 'gerar_pix'
    }
}É possível fazer isso, qual seria o caminho?
 
            