          select_fields = klass_info['select_fields']
          model_fields_start, model_fields_end = select_fields[0], select_fields[-1] + 1
          init_list = [f[0].target.attname
                       for f in select[model_fields_start:model_fields_end]]
          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)
          related_populators = get_related_populators(klass_info, select, db)
          for row in compiler.results_iter(results):
              obj = model_cls.from_db(db, init_list, row[model_fields_start:model_fields_end])
              if related_populators:
                  for rel_populator in related_populators:
 
</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                 model_cls = deferred_class_factory(self.model, skip)
            else:
                model_cls = self.model
 </s> add             model_cls = self.model </s> remove         elif self._deferred:
            deferred_fields = self.get_deferred_fields()
 </s> add         elif deferred_fields: </s> remove             deferred_fields = [
                f.attname for f in self._meta.fields
                if (f.attname not in self.__dict__ and
                    isinstance(self.__class__.__dict__[f.attname], DeferredAttribute))
            ]

 </s> add  </s> remove         if cls._deferred:
            new = cls(**dict(zip(field_names, values)))
        else:
            new = cls(*values)
 </s> add         if len(values) != len(cls._meta.concrete_fields):
            values = list(values)
            values.reverse()
            values = [values.pop() if f.attname in field_names else DEFERRED for f in cls._meta.concrete_fields]
        new = cls(*values)
          select_fields = klass_info['select_fields']
          model_fields_start, model_fields_end = select_fields[0], select_fields[-1] + 1
          init_list = [f[0].target.attname
                       for f in select[model_fields_start:model_fields_end]]





          related_populators = get_related_populators(klass_info, select, db)
          for row in compiler.results_iter(results):
              obj = model_cls.from_db(db, init_list, row[model_fields_start:model_fields_end])
              if related_populators:
                  for rel_populator in related_populators:
keep keep keep keep replace replace replace replace replace keep keep keep keep keep
 Fixed #26207 -- Replaced dynamic classes with non-data descriptors for deferred instance loading. 
django/db/models/query.py