我正在使用Pycharm在DEBUG模式下运行Django应用程序,每当我更改一些代码时,系统会执行检查。
pydev debugger: process 2354 is connecting
Performing system checks...
有没有办法跳过系统检查/加快这些检查的速度?
更新:我想在代码更改后禁用系统检查,因为它们太慢了。
我正在使用Pycharm在DEBUG模式下运行Django应用程序,每当我更改一些代码时,系统会执行检查。
pydev debugger: process 2354 is connecting
Performing system checks...
有没有办法跳过系统检查/加快这些检查的速度?
更新:我想在代码更改后禁用系统检查,因为它们太慢了。
很不幸,你不能仅通过命令行参数或设置来关闭 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.