  
          if value in (None, ''):
              into[(self.source or field_name)] = None
          else:
              kwargs = {
                  'instance': obj,
                  'data': value,
                  'context': self.context,
                  'partial': self.partial,
                  'many': self.many
              }
              serializer = self.__class__(**kwargs)
  
              if serializer.is_valid():
                  into[self.source or field_name] = serializer.object
              else:
                  # Propagate errors up to our parent
                  raise NestedValidationError(serializer.errors)
  
      def get_identity(self, data):
 
</s> remove                 # Propagate errors up to our parent
                raise NestedValidationError(serializer.errors)
 </s> add                 kwargs = {
                    'instance': obj,
                    'data': value,
                    'context': self.context,
                    'partial': self.partial,
                    'many': self.many
                }
                serializer = self.__class__(**kwargs)

                if serializer.is_valid():
                    into[self.source or field_name] = serializer.object
                else:
                    # Propagate errors up to our parent
                    raise NestedValidationError(serializer.errors) </s> remove         if value in (None, ''):
            into[(self.source or field_name)] = None
 </s> add         if self.source == '*':
            if value:
                into.update(value)
            if value in (None, ''):
                into[(self.source or field_name)] = None
  
          if value in (None, ''):
              into[(self.source or field_name)] = None
          else:
            if value in (None, ''):
                into[(self.source or field_name)] = None
            if value in (None, ''):
                into[(self.source or field_name)] = None
            if value in (None, ''):
                into[(self.source or field_name)] = None
            if value in (None, ''):
                into[(self.source or field_name)] = None
            if value in (None, ''):
                into[(self.source or field_name)] = None
            if value in (None, ''):
                into[(self.source or field_name)] = None
            if value in (None, ''):
                into[(self.source or field_name)] = None
            if value in (None, ''):
                into[(self.source or field_name)] = None
            if value in (None, ''):
                into[(self.source or field_name)] = None
            if value in (None, ''):
                into[(self.source or field_name)] = None
            if value in (None, ''):
                into[(self.source or field_name)] = None
              else:
                  # Propagate errors up to our parent
                  raise NestedValidationError(serializer.errors)
  
      def get_identity(self, data):
keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace keep keep keep keep keep
 when source='*' on a nested serializer, expand fields into outer serializer when writing. fixes #765 
rest_framework/serializers.py