Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Skip system checks on Django server in DEBUG mode in Pycharm

Tags:

I am running django application in Pycharm in DEBUG mode. Each time when i change some code system checks are performed.

pydev debugger: process 2354 is connecting  Performing system checks... 

Is there any way to skip system checks/speed up this checks?

UPDATE: I want to disable system checks after changes in code, because they are too slow.

like image 816
domandinho Avatar asked Jan 03 '17 07:01

domandinho


People also ask

How do I disable debug in Django?

To disable debug mode, set DEBUG = False in your Django settings file.

How do I know if Django server is running?

To verify the Django project, make sure your virtual environment is activated, then start Django's development server using the command python manage.py runserver . The server runs on the default port 8000, and you see output like the following output in the terminal window: Performing system checks...


1 Answers

The Problem

Unfortunately, there's no command-line argument or setting you can just turn on in order to turn off the checks in runserver. In general, there's the --skip-checks option which can turn off system checks but they are of no use for runserver.

If you read the code of the runserver command, you see that it essentially ignores the requires_system_checks and requires_migration_checks flags but instead explicitly calls self.check() and self.check_migrations() in its inner_run method, no matter what:

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 ...] 

A Solution

What you could do is derive your own run command, which takes the runserver command but overrides the methods that perform the checks:

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")) 

You need to put this under <app>/management/commands/run.py where <app> is whatever appropriate app should have this command. Then you can invoke it with ./manage.py run and you'll get something like:

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. 
like image 167
Louis Avatar answered Sep 19 '22 15:09

Louis