code: def validate_empty_values(self, data):
          
          if self.read_only:
              return (True, self.get_default())
  
          if data is empty:
              if getattr(self.root, 'partial', False):
                  raise SkipField()
              if self.required:
                  self.fail('required')
              return (True, self.get_default())
  
          if data is None:
              if not self.allow_null:
                  self.fail('null')
              return (True, None)
  
          return (False, data)
docs: Validate empty values, and either:
  
          * Raise `ValidationError`, indicating invalid data.
          * Raise `SkipField`, indicating that the field should be ignored.
          * Return (True, data), indicating an empty value that should be
            returned without any further validation being applied.
          * Return (False, data), indicating a non-empty value, that should
            have validation applied as normal.