我正在嘗試在我的 ListAPiview 中設定錯誤訊息,如果用戶嘗試訪問除Pool Operator他之外的資料應該得到一個權限被拒絕的錯誤
視圖.py
class ProductListAPIView(generics.ListAPIView):
serializer_class = ProductSerializer
pagination_class = StandardResultsSetPagination
permission_classes = (permissions.IsAuthenticated, )
def get_queryset(self):
company = self.request.GET['company']
view = self.request.GET['view']
if view=='Pool Operator':
emp = list(Employee.objects.filter(company=company).values_list('pk', flat=True))
queryset = Product.objects.filter(owner__in=emp).order_by('-pk')
return queryset
else:
return ValidationError(
{'permission denied': "Can't see user's Products"}
)
但是當我運行它時,我收到以下錯誤:
'ValidationError' 型別的物件沒有 len()
需要更改什么才能顯示成功的錯誤訊息?
uj5u.com熱心網友回復:
您需要使用 raise 而不是 return。
所以,代碼將是
raise ValidationError(
{'permission denied': "Can't see user's Products"}
)
您還可以在 Django 設定中使用自定義例外處理程式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/367917.html
