code: def prep_for_deserialize(model, record, using, init_list=None):  # pylint:disable=unused-argument
      
      # TODO the parameter 'using' is not currently important.
      attribs = record.pop('attributes')  # NOQA pylint:disable=unused-variable
  
      mod = model.__module__.split('.')
      if hasattr(model._meta, 'app_label'):
          app_label = getattr(model._meta, 'app_label')
      elif mod[-1] == 'models':
          app_label = mod[-2]
      else:
          raise ImproperlyConfigured("Can't discover the app_label for %s, you must specify it via model meta options.")
  
      if len(record.keys()) == 1 and model._meta.db_table in record:
          # this is for objects with ManyToManyField and OneToOneField
          while len(record) == 1:
              record = list(record.values())[0]
              if record is None:
                  return None
  
      fields = prep_for_deserialize_inner(model, record, init_list=init_list)
  
      if init_list and set(init_list).difference(fields).difference([SF_PK]):
          raise DatabaseError("Not found some expected fields")
  
      return dict(
          model='.'.join([app_label, model.__name__]),
          pk=record.pop('Id'),
          fields=fields,
      )
docs: Convert a record from SFDC (decoded JSON) to dict(model string, pk, fields)
      If fixes fields of some types. If names of required fields `init_list `are
      specified, then only these fields are processed.