Подтвердить что ты не робот

Пропустить системные проверки на сервере Django в режиме DEBUG в Pycharm

Я запускаю приложение django в Pycharm в режиме DEBUG. Каждый раз, когда я меняю некоторые проверки системы кода, выполняется.

pydev debugger: process 2354 is connecting

Performing system checks...

Есть ли способ пропустить проверку системы/ускорить проверку?

UPDATE: я хочу отключить системные проверки после изменений кода, потому что они слишком медленные.

4b9b3361

Ответ 1

Проблема

К сожалению, нет аргументов или настроек командной строки, которые вы можете просто включить, чтобы отключить проверки в 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.

Ответ 2

Есть одна вещь, которая может ускорить отладчик PyCharm и отключить параметр " Собрать данные о времени выполнения для определения кода": находится в разделе "Файл" > "Настройки" > "Сборка", "Выполнение", Развертывание > Отладчик Python.