3

提供如何發送定製的響應,如果未經授權的憑據在Django休息提供如何發送定製的響應。如果unauthroized憑據在Django休息

class StockList(APIView): 
    permission_classes = [IsAuthenticated] 

    def get(self,request): 
     stocks = Stock.objects.all() 
     serializer = StockSerializer(stocks,many=True) 
     return Response({'user': serializer.data,'post': serializer.data}) 
    def post(self): 
     pass 

在這裏,當我通過無效憑證命中url我在開發服務器上得到401錯誤。 但我想在客戶端使用json發送自定義響應。 歡迎任何建議。 謝謝。

+0

你要發送的所有401錯誤自定義響應? –

+0

@arpit索蘭奇是 –

回答

1

您可以使用自定義異常處理程序API異常定製的響應。

from rest_framework.views import exception_handler 
def custom_exception_handler(exc, context): 
    # Call REST framework's default exception handler first, 
    # to get the standard error response. 
    response = exception_handler(exc, context) 

    # Now add the HTTP status code to the response. 
    if response is not None: 
     response.data['status_code'] = response.status_code 

    if response.status_code == 401: 
     response.data['some_message'] = "Some custom message" 

    return response 

然後在setting.py你必須添加自定義錯誤處理程序

REST_FRAMEWORK = { 
    'EXCEPTION_HANDLER': 'my_project.path.to.custom_exception_handler' 
} 

參考文獻:docs

+0

我看到了,但不能figureout如何在我的代碼實現這一點。所以請在我的代碼 –

+0

中操縱這一點,你無法弄清楚。把上面的代碼放在任何文件中,並在settings.py文件中給出它的路徑 –

+0

做到了這一點,但現在顯示valueerror爲空模塊名稱 –