          if self.read_only:
              return
  
          try:
              native = data[field_name]
          except KeyError:
              if self.required:
                  raise ValidationError(self.error_messages['required'])
              return
  
 
</s> remove         if self.delete:
 </s> add         if self._delete: </s> remove             if obj and (getattr(obj, pk_field_name) == pk_val):
                self.object = obj
                self.delete = native.get('_delete')

        obj = self.from_native(native, files)
        if not self._errors:
 </s> add  </s> remove             pk_val = native.get(pk_field_name)
 </s> add  </s> remove             into[self.source or field_name] = self
 </s> add         if value in (None, ''):
            self._delete = True
            into[(self.source or field_name)] = self </s> remove             # Propagate errors up to our parent
            raise ValidationError(self._errors)
 </s> add             obj = self.from_native(value, files)
            if not self._errors:
                self.object = obj
                into[self.source or field_name] = self
            else:
                # Propagate errors up to our parent
                raise ValidationError(self._errors)
            value = data[field_name]
          if self.read_only:
              return
  
          try:
            value = data[field_name]
          except KeyError:
              if self.required:
                  raise ValidationError(self.error_messages['required'])
              return
  
keep keep keep keep replace keep keep keep keep keep
 Use None to delete nested object as opposed to _delete flag 
rest_framework/serializers.py