              def reorder_for_init(row):
                  return [row[row_pos] for row_pos in pos_list]
              self.reorder_for_init = reorder_for_init
  
          self.model_cls = self.get_deferred_cls(klass_info, self.init_list)
          self.pk_idx = self.init_list.index(self.model_cls._meta.pk.attname)
          self.related_populators = get_related_populators(klass_info, select, self.db)
          field = klass_info['field']
          reverse = klass_info['reverse']
          self.reverse_cache_name = None
 
</s> remove         if len(init_list) != len(model_cls._meta.concrete_fields):
            init_set = set(init_list)
            skip = [f.attname for f in model_cls._meta.concrete_fields
                    if f.attname not in init_set]
            model_cls = deferred_class_factory(model_cls, skip)
 </s> add  </s> remove     def get_deferred_cls(self, klass_info, init_list):
        model_cls = klass_info['model']
        if len(init_list) != len(model_cls._meta.concrete_fields):
            init_set = set(init_list)
            skip = [
                f.attname for f in model_cls._meta.concrete_fields
                if f.attname not in init_set
            ]
            model_cls = deferred_class_factory(model_cls, skip)
        return model_cls

 </s> add  </s> remove         if not self._deferred:
            class_id = self._meta.app_label, self._meta.object_name
            return model_unpickle, (class_id, [], simple_class_factory), data
        defers = []
        for field in self._meta.fields:
            if isinstance(self.__class__.__dict__.get(field.attname),
                          DeferredAttribute):
                defers.append(field.attname)
        model = self._meta.proxy_for_model
        class_id = model._meta.app_label, model._meta.object_name
        return (model_unpickle, (class_id, defers, deferred_class_factory), data)
 </s> add         class_id = self._meta.app_label, self._meta.object_name
        return model_unpickle, (class_id,), data </s> remove                 model_cls = deferred_class_factory(self.model, skip)
            else:
                model_cls = self.model
 </s> add             model_cls = self.model </s> remove         model = obj._meta.proxy_for_model if obj._deferred else obj.__class__
        data = OrderedDict([('model', force_text(model._meta))])
 </s> add         data = OrderedDict([('model', force_text(obj._meta))])
        self.model_cls = klass_info['model']
              def reorder_for_init(row):
                  return [row[row_pos] for row_pos in pos_list]
              self.reorder_for_init = reorder_for_init
  
        self.model_cls = klass_info['model']
          self.pk_idx = self.init_list.index(self.model_cls._meta.pk.attname)
          self.related_populators = get_related_populators(klass_info, select, self.db)
          field = klass_info['field']
          reverse = klass_info['reverse']
          self.reverse_cache_name = None
keep keep keep keep replace keep keep keep keep keep
 Fixed #26207 -- Replaced dynamic classes with non-data descriptors for deferred instance loading. 
django/db/models/query.py