実行を開始する前に、Django 開発サーバーに何かをさせたいと考えています。これを行うために、新しいアプリを作成して の先頭に追加し、次のコードを使用してアプリ内にファイルをINSTALLED_APPS
作成しました。management/commands/runserver.py
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)
(もちろん、私が実際にやりたいことは、stdout に 1 行を書き込むよりも複雑ですが、これは問題を示す最も単純な例です。または他のメソッドではrun
なくをオーバーライドする理由は、既にこのコードの実行時に設定されます。)handle
self.addr
を実行する./manage.py runserver
と、「About to start running on 127.0.0.1」という行が 1 回ではなく、サーバーが実行を開始する前に 2 回表示されます。なぜこれが起こっているのか、それに対して何ができるのか?