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

こんな感じになった。