DRF serializer.is_valid()からエラー情報を取り出す
sampleView.py
hoge_serializer.is_valid() error_datas = hoge_serializer.errors # rest_framework.utils.serializer_helpers.ReturnDict型 error_list = [] for k,v in error_datas.items(): # key:エラーになった項目名、value:ErrorDetailのリスト(その項目に関するエラーがリストで格納されている) # ErrorDetail.codeでエラーコードが取得できる error_list.append({'key': k, 'value': v, 'code': v[0].code})
エラーコードを判定してメッセージを置き換えるなどしたい
error_list = [] for key,details in error_datas.items(): # エラーコードを変換 for d in details: if d.code in required_check_codes : error_list.append({'error_id': 'XX, 'item': key}) elif d.code in invalid_check_codes : error_list.append({'error_id': 'YY', 'item': key}) else: error_list.append({'error_id': '147','d': d}) return error_list
こんな感じになった。