  """
  We perform uniqueness checks explicitly on the serializer class, rather
  the using Django's `.full_clean()`.
  
  This gives us better seperation of concerns, allows us to use single-step
  object creation, and makes it possible to switch between using the implicit
  `ModelSerializer` class and an equivelent explicit `Serializer` class.
  """
  from django.core.exceptions import ValidationError
  from django.utils.translation import ugettext_lazy as _
 
</s> remove This change also means that we no longer use the `.full_clean()` method on model instances, but instead perform all validation explicitly on the serializer. This gives a cleaner seperation, and ensures that there's no automatic validation behavior on `ModelSerializer` classes that can't also be easily replicated on regular `Serializer` classes.
 </s> add This change also means that we no longer use the `.full_clean()` method on model instances, but instead perform all validation explicitly on the serializer. This gives a cleaner separation, and ensures that there's no automatic validation behavior on `ModelSerializer` classes that can't also be easily replicated on regular `Serializer` classes. </s> remove * Some data, such as many-to-many relationships, cannot be added to the object instance until after it has been saved. This type of data needed to be hidden in some undocumentated state on the object instance, or kept as state on the serializer instance so that it could be used when `.save()` is called.
 </s> add * Some data, such as many-to-many relationships, cannot be added to the object instance until after it has been saved. This type of data needed to be hidden in some undocumented state on the object instance, or kept as state on the serializer instance so that it could be used when `.save()` is called. </s> remove Removing the shortcut takes away an unneccessary layer of abstraction, and makes your codebase more explicit without any significant extra complexity. It also results in better consistency, as there's now only one way to set the serializer class and queryset attributes for the view, instead of two.
 </s> add Removing the shortcut takes away an unnecessary layer of abstraction, and makes your codebase more explicit without any significant extra complexity. It also results in better consistency, as there's now only one way to set the serializer class and queryset attributes for the view, instead of two. </s> remove The `.restore_object()` method is now replaced with two seperate methods, `.create()` and `.update()`.
 </s> add The `.restore_object()` method is now replaced with two separate methods, `.create()` and `.update()`. </s> remove * `.data` - Returns the outgoing primative representation.
 </s> add * `.data` - Returns the outgoing primitive representation.
This gives us better separation of concerns, allows us to use single-step
  """
  We perform uniqueness checks explicitly on the serializer class, rather
  the using Django's `.full_clean()`.
  
This gives us better separation of concerns, allows us to use single-step
  object creation, and makes it possible to switch between using the implicit
  `ModelSerializer` class and an equivelent explicit `Serializer` class.
  """
  from django.core.exceptions import ValidationError
  from django.utils.translation import ugettext_lazy as _
keep keep keep keep replace keep keep keep keep keep
 Minor: fix spelling and grammar, mostly in 3.0 announcement 
rest_framework/validators.py