      """
      def _lazy_method(self, method, apps, receiver, sender, **kwargs):
          # This partial takes a single optional argument named "sender".
          partial_method = partial(method, receiver, **kwargs)
          # import models here to avoid a circular import
          from django.db import models
          if isinstance(sender, models.Model) or sender is None:
              # Skip lazy_model_operation to get a return value for disconnect()
              return partial_method(sender)
          apps = apps or models.base.Options.default_apps
          apps.lazy_model_operation(partial_method, make_model_tuple(sender))
  
      def connect(self, receiver, sender=None, weak=True, dispatch_uid=None, apps=None):
 
</s> remove         apps = apps or models.base.Options.default_apps
        apps.lazy_model_operation(partial_method, make_model_tuple(sender))
 </s> add 
        if isinstance(sender, six.string_types):
            apps = apps or Options.default_apps
            apps.lazy_model_operation(partial_method, make_model_tuple(sender))
        else:
      """
      def _lazy_method(self, method, apps, receiver, sender, **kwargs):
          # This partial takes a single optional argument named "sender".
          partial_method = partial(method, receiver, **kwargs)
        if isinstance(sender, six.string_types):
            apps = apps or Options.default_apps
            apps.lazy_model_operation(partial_method, make_model_tuple(sender))
        else:
        if isinstance(sender, six.string_types):
            apps = apps or Options.default_apps
            apps.lazy_model_operation(partial_method, make_model_tuple(sender))
        else:
        if isinstance(sender, six.string_types):
            apps = apps or Options.default_apps
            apps.lazy_model_operation(partial_method, make_model_tuple(sender))
        else:
        if isinstance(sender, six.string_types):
            apps = apps or Options.default_apps
            apps.lazy_model_operation(partial_method, make_model_tuple(sender))
        else:
              return partial_method(sender)
          apps = apps or models.base.Options.default_apps
          apps.lazy_model_operation(partial_method, make_model_tuple(sender))
  
      def connect(self, receiver, sender=None, weak=True, dispatch_uid=None, apps=None):
keep keep keep keep replace replace replace replace keep keep keep keep keep
 Fixed #26686 -- Fixed crash when registering model signals with abstract senders. 
django/db/models/signals.py