              '--noinput', '--no-input', action='store_false', dest='interactive',
              help='Tells Django to NOT prompt the user for input of any kind.',
          )
  
      def handle(self, **options):
  
          self.verbosity = options['verbosity']
 
</s> remove             new_migration = subclass("%s_squashed_%s" % (start_migration.name, migration.name), app_label)
 </s> add             if squashed_name:
                # Use the name from --squashed-name.
                prefix, _ = start_migration.name.split('_', 1)
                name = '%s_%s' % (prefix, squashed_name)
            else:
                # Generate a name.
                name = '%s_squashed_%s' % (start_migration.name, migration.name)
            new_migration = subclass(name, app_label) </s> remove             new_migration = subclass("0001_squashed_%s" % migration.name, app_label)
 </s> add             name = '0001_%s' % (squashed_name or 'squashed_%s' % migration.name)
            new_migration = subclass(name, app_label)
        parser.add_argument(
            '--squashed-name', dest='squashed_name',
            help='Sets the name of the new squashed migration.',
        )
              '--noinput', '--no-input', action='store_false', dest='interactive',
              help='Tells Django to NOT prompt the user for input of any kind.',
          )
        parser.add_argument(
            '--squashed-name', dest='squashed_name',
            help='Sets the name of the new squashed migration.',
        )
  
      def handle(self, **options):
  
          self.verbosity = options['verbosity']
keep keep add keep keep keep keep
 Fixed #28363 -- Allowed naming the migration generated by squashmigrations. 
django/core/management/commands/squashmigrations.py