              field_names = set()
              for field in self._meta.concrete_fields:
                  if not field.primary_key and not hasattr(field, 'through'):
                      field_names.add(field.attname)
              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))
              ]
  
              loaded_fields = field_names.difference(deferred_fields)
              if loaded_fields:
                  update_fields = frozenset(loaded_fields)
  
          self.save_base(using=using, force_insert=force_insert,
 
</s> remove         elif not force_insert and self._deferred and using == self._state.db:
 </s> add         elif not force_insert and deferred_fields and using == self._state.db: </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         elif self._deferred:
            deferred_fields = self.get_deferred_fields()
 </s> add         elif deferred_fields: </s> remove         # default implementation of from_db() (could be replaced
        # with super())
        if cls._deferred:
            instance = cls(**zip(field_names, values))
        else:
            instance = cls(*values)
 </s> add         # Default implementation of from_db() (subject to change and could
        # be replaced with super()).
        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) </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 
              field_names = set()
              for field in self._meta.concrete_fields:
                  if not field.primary_key and not hasattr(field, 'through'):
                      field_names.add(field.attname)






              loaded_fields = field_names.difference(deferred_fields)
              if loaded_fields:
                  update_fields = frozenset(loaded_fields)
  
          self.save_base(using=using, force_insert=force_insert,
keep keep keep keep replace 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/base.py