1.在create()中拋出錯誤
class YourSerializer(serializers.Serializer): def create(self, validated_data): # 進行數據驗證是否滿足條件 #得到數據過程以省略 condition = False if not condition: # 拋出ValidationError異常,并傳遞錯誤信息 raise ValidationError("錯誤信息") else: 正常邏輯
2.在valudate鉤子中校驗數據拋出錯誤
class YourSerializer(ModelSerializer): class Meta: model = Aaa exclude = ('is_delete', 'create_time',"modified_time" ) def validate(self, attrs): a = attrs.get('a') if len(a) < 10: raise ValidationError({'a': '該字段長度不能小于10'}) return attrs
2. 在視圖中捕捉
from rest_framework.views import APIView from rest_framework.response import Response class YourView(APIView): def post(self, request): serializer = YourSerializer(data=request.data) try: if serializer.is_valid(): serializer.save() return Response(serializer.data) else: # 如果序列化器驗證失敗,獲取錯誤信息 errors = serializer.errors return Response(errors, status=status.HTTP_400_BAD_REQUEST) except ValidationError as e: # 如果在序列化器的create方法中拋出了ValidationError異常,在這里捕獲錯誤信息并返回給前端 errors = str(e.args[0]) # 獲取錯誤信息 return Response(errors, status=status.HTTP_400_BAD_REQUEST)
浙公網安備 33010602011771號