web-dev-qa-db-ja.com

PycharmのDEBUGモードでDjangoサーバーのシステムチェックをスキップする

DjangoアプリケーションをPycharmでデバッグモードで実行しています。コードを変更するたびに、システムチェックが実行されます。

pydev debugger: process 2354 is connecting

Performing system checks...

システムチェックをスキップ/このチェックを高速化する方法はありますか?

更新:コードの変更後のシステムチェックは遅すぎるため、無効にしたい。

17
domandinho

問題

残念ながら、コマンドライン引数や設定はありません。runserverのチェックをオフにするためにオンにすることができます。 一般的に、システムチェックをオフにできる_--skip-checks_オプションがありますが、runserverには役に立ちません。

runserverコマンドのコードを読むと、基本的に_requires_system_checks_フラグと_requires_migration_checks_フラグが無視され、代わりにself.check()self.check_migrations()その _inner_run_メソッド 、何があっても:

_def inner_run(self, *args, **options):
    [ Earlier irrelevant code omitted ...]

    self.stdout.write("Performing system checks...\n\n")
    self.check(display_num_errors=True)
    # Need to check migrations here, so can't use the
    # requires_migrations_check attribute.
    self.check_migrations()

    [ ... more code ...]
_

解決策

できることは独自のrunコマンドを導出することです。これは、runserverコマンドを受け取りますが、チェックを実行するメソッドをオーバーライドします

_from Django.core.management.commands.runserver import Command as RunServer

class Command(RunServer):

    def check(self, *args, **kwargs):
        self.stdout.write(self.style.WARNING("SKIPPING SYSTEM CHECKS!\n"))

    def check_migrations(self, *args, **kwargs):
        self.stdout.write(self.style.WARNING("SKIPPING MIGRATION CHECKS!\n"))
_

これを_<app>/management/commands/run.py_の下に置く必要があります。ここで、_<app>_は、適切なアプリにこのコマンドが必要なものです。次に、_./manage.py run_を使用して呼び出すことができ、次のようになります。

_Performing system checks...

SKIPPING SYSTEM CHECKS!

SKIPPING MIGRATION CHECKS!

January 18, 2017 - 12:18:06
Django version 1.10.2, using settings 'foo.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
_
24
Louis

PyCharmのデバッガーを高速化する可能性のあるものが1つあります。それは、 "コードインサイトのためにランタイムタイプ情報を収集する"設定:[ファイル]> [設定]> [ビルド、実行、展開]> =の下にあります。 Pythonデバッガー。

1
Inconnu