0

I am newbie to Django rest framework and trying to send custom error messages back to client, where I am using VueJS.

I followed the answer given here but I am unable to receive error message on client side.

client-side

auth.phoneVerification(this.fullName, this.mobileNo, this.email)
                .then((response)=>{
                  console.log(response.data)
                })
                .catch((error)=>{
                  console.log("Error is ", error)
                })

server-side

serializers.py

class UserSerializer(serializers.ModelSerializer):

    class Meta:
        model = InterestedUser
        fields = ('full_name', 'phone_no', 'email')

    def __init__(self, *args, **kwargs):
        super(UserSerializer, self).__init__(*args, **kwargs)
        self.fields['full_name'].error_messages['required'] = 'Please provide your full name.'
        self.fields['phone_no'].error_messages['required'] = 'Please provide your mobile number.'
        self.fields['email'].error_messages['required'] = 'Please provide your email id.'

views.py

class UserView(GenericAPIView):
    serializer_class = UserSerializer

    def post(self, request):
        serializer = self.get_serializer(data=request.data)
        print("requested data is ", request.data)

        if not serializer.is_valid():
            raise serializers.ValidationError(serializer.errors)

        print("serialiser errors are ",serializer.errors)

In console I am unable to receive the message as provided by serializer.errors

Vineet
  • 723
  • 4
  • 12
  • 31

1 Answers1

0

You can return any Django response with proper data, ex:

    ....
    return JsonResponse({'errors': serializer.errors}, status=500)
ahmed
  • 5,430
  • 1
  • 20
  • 36