docs: def to_simple_model(self, instance, **options): # noqa
          """ Convert model to simple python structure.
          """
          options = self.init_options(**options)
          fields, include, exclude, related = options['fields'], options['include'], options['exclude'], options['related'] # noqa
  
          result = dict(
              model=smart_unicode(instance._meta),
              pk=smart_unicode(
                  instance._get_pk_val(), strings_only=True),
              fields=dict(),
          )
  
          default_fields = set([field.name for field in instance._meta.fields if field.serialize])
          serialized_fields = fields or (default_fields | include) - exclude
  
          for fname in serialized_fields:
  
              # Respect `to_simple__<fname>`
              to_simple = getattr(
                  self.scheme, 'to_simple__{0}'.format(fname), None)
  
              if to_simple:
                  result['fields'][fname] = to_simple(instance, serializer=self)
                  continue
  
              related_options = related.get(fname, dict())
              if related_options:
                  related_options = self.init_options(**related_options)
  
              if fname in default_fields and not related_options:
                  field = instance._meta.get_field(fname)
                  value = field.value_from_object(instance)
  
              else:
                  value = getattr(instance, fname, None)
                  if isinstance(value, Manager):
                      value = value.all()
  
              result['fields'][fname] = self.to_simple(
                  value, **related_options)
  
          if self.format != 'django':
              fields = result['fields']
              fields['id'] = result['pk']
              result = fields
  
          return result