  
          return instance
  
      def _save(self, parent=None, fk_field=None):
          if self.delete:
              self.object.delete()
              return
  
          if parent and fk_field:
              setattr(self.object, fk_field, parent)
 
</s> remove             native = data[field_name]
 </s> add             value = data[field_name] </s> remove             pk_val = native.get(pk_field_name)
 </s> add  </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             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         data = {'id': 3, 'name': u'target-3', 'target_source': {'_delete': True, 'id': 3, 'name': u'target-source-3', 'source': {'id': 3, 'name': u'source-3'}}}
 </s> add         data = {'id': 3, 'name': u'target-3', 'target_source': None}
        if self._delete:
  
          return instance
  
      def _save(self, parent=None, fk_field=None):
        if self._delete:
              self.object.delete()
              return
  
          if parent and fk_field:
              setattr(self.object, fk_field, parent)
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