title: Serializer is_valid() is returning true though fields are empty
body: <p>I Tried and run the code with function-based view and it was working perfectly then I tried to switch to modelViewSet.</p>
  
  <p>Here is my code for Serializers :</p>
  
  <p>UserSerializer</p>
  
  <pre><code>class UserSerializer(serializers.ModelSerializer):
      class Meta:
          model = get_user_model()
          username = serializers.CharField(required=True)
          email = email = serializers.EmailField(validators=[UniqueValidator(queryset=get_user_model().objects.all())])
          phone = serializers.CharField(required=True)
          full_name = serializers.CharField(required=True)
          user_type = serializers.CharField(required=True)
          password = serializers.CharField(write_only=True)
          fields=('username', 'email', 'phone', 'full_name', 'user_type','password')
  
      def create(self, validated_data):
  
          user = get_user_model().objects.create(
              username=validated_data['username'],
              email=validated_data['email'],
              phone=validated_data['phone'],
              full_name=validated_data['full_name'],
              user_type=validated_data['user_type']
          )
          user.set_password(validated_data['password'])
          user.save()
  
          return user
  </code></pre>
  
  <p>Here is my modelViewSet :</p>
  
  <pre><code>class RegisterView(viewsets.ModelViewSet):
      queryset = ''
  
  def create(self, request):
      if request.data.get('user', dict()).get('user_type') == 'employee':
          userSerializer = UserSerializer(data=request.data.get('user', dict()))
          if userSerializer.is_valid(raise_exception=ValueError):
              serializer = EmployeeSerializer(data=request.data)
              if serializer.is_valid(raise_exception=ValueError):
                  serializer.create(validated_data=request.data)
                  return Response(serializer.data, status=HTTP_201_CREATED)
              return Response(serializer.error_messages,
                              status=HTTP_400_BAD_REQUEST)
  
  def get_serializer_class(self):
          if self.request.data.get('user', dict()).get('user_type') == 'employee':
              return EmployeeSerializer
          if self.request.data.get('user', dict()).get('user_type') == 'customer':
              return CustomerSerializer
          if self.action == 'customer':
              return CustomerSerializer
          return EmployeeSerializer
  </code></pre>
  
  <p>Now If I dont pass username or password then is_valid for userSerializer is giving error but if I dont pass email or phone or full_name is_valid doesnt raise any exception and it remains true.</p>
  
  <p>It was working correctly with Function-based view or may be I am missing something.</p>
  
  <p>My concern is it should give error if any value is missing in request.data</p>