I want to make the Django development server do something before it starts running. To do this, I created a new app, added it to the top of INSTALLED_APPS, and then created a management/commands/runserver.py file in the app with the following code:
from django.contrib.staticfiles.management.commands.runserver import Command as RunserverCommand
class Command(RunserverCommand):
    def run(self, *args, **options):
        self.stdout.write('About to start running on ' + self.addr)
        super(Command, self).run(*args, **options)
(The thing I actually want to do is more complicated than writing one line to stdout, of course, but this is the simplest example that demonstrates the problem. The reason I override run, rather than handle or some other method, is because I need self.addr to already be set when this code runs.)
When I run ./manage.py runserver, the line "About to start running on 127.0.0.1" appears not once, but twice before the server starts running. Why is this happening and what can be done about it?
 
    