  
          # Use provided fields, if not set then reload all non-deferred fields.
          if fields is not None:
              fields = list(fields)
              db_instance_qs = db_instance_qs.only(*fields)
          elif deferred_fields:
              fields = [f.attname for f in self._meta.concrete_fields
 
</s> remove         elif self._deferred:
            deferred_fields = self.get_deferred_fields()
 </s> add         elif deferred_fields: </s> remove         if self._deferred:
            non_deferred_model = self._meta.proxy_for_model
        else:
            non_deferred_model = self.__class__
        db_instance_qs = non_deferred_model._default_manager.using(db).filter(pk=self.pk)
 </s> add         db_instance_qs = self.__class__._default_manager.using(db).filter(pk=self.pk) </s> remove                 model_cls = deferred_class_factory(self.model, skip)
            else:
                model_cls = self.model
 </s> add             model_cls = self.model </s> remove             if isinstance(self.__class__.__dict__.get(f.attname), DeferredAttribute)
 </s> add             if f.attname not in self.__dict__ </s> remove ``field_names`` are in the same order as the ``values``, so it is possible to
use ``cls(**(zip(field_names, values)))`` to instantiate the object. If all
of the model's fields are present, then ``values`` are guaranteed to be in
the order ``__init__()`` expects them. That is, the instance can be created
by ``cls(*values)``. It is possible to check if all fields are present by
consulting ``cls._deferred`` - if ``False``, then all fields have been loaded
from the database.
 </s> add ``field_names`` are in the same order as the ``values``. If all of the model's
fields are present, then ``values`` are guaranteed to be in the order
``__init__()`` expects them. That is, the instance can be created by
``cls(*values)``. If any fields are deferred, they won't appear in
``field_names``. In that case, assign a value of ``django.db.models.DEFERRED``
to each of the missing fields.
        deferred_fields = self.get_deferred_fields()
  
          # Use provided fields, if not set then reload all non-deferred fields.
        deferred_fields = self.get_deferred_fields()
          if fields is not None:
              fields = list(fields)
              db_instance_qs = db_instance_qs.only(*fields)
          elif deferred_fields:
              fields = [f.attname for f in self._meta.concrete_fields
keep add keep keep keep keep keep
 Fixed #26207 -- Replaced dynamic classes with non-data descriptors for deferred instance loading. 
django/db/models/base.py