#统一接口返回 # 自定义异常方法,替换掉全局 # 写一个方法 # 自定义异常处理的方法 from rest_framework.views import exception_handler from rest_framework.response import Response from rest_framework import status def my_exception_handler(exc, context): response=exception_handler(exc, context) # 两种情况,一个是None,drf没有处理 #response对象,django处理了,但是处理的不符合咱们的要求 # print(type(exc)) if not response: if isinstance(exc, ZeroDivisionError): return Response(data={'status': 777, 'msg': "除以0的错误" + str(exc)}, status=status.HTTP_400_BAD_REQUEST) return Response(data={'status':999,'msg':str(exc)},status=status.HTTP_400_BAD_REQUEST) else: # return response return Response(data={'status':888,'msg':response.data.get('detail')},status=status.HTTP_400_BAD_REQUEST) # 全局配置setting.py 'EXCEPTION_HANDLER': 'app01.app_auth.my_exception_handler',