Django Apps

Launch something when app starts

from django.apps import AppConfig
 
 
class UsersConfig(AppConfig):
    name = 'users'
 
    def ready(self):
        # TODO: This should be placed into a global app, meanwhile having it here is (more-or-less) fine
        # This ensures the SECRET_KEY has not been published on a git repo by checking the dev key
        from django.conf import settings
        from importlib import import_module
        assert hasattr(settings, 'DEV_SETTINGS_MODULE'), 'Please add DEV_SETTINGS_MODULE value to your settings.'
        dev_module = import_module(settings.DEV_SETTINGS_MODULE)
        is_debug = settings.DEBUG
        dev_secret = dev_module.SECRET_KEY
        current_secret = settings.SECRET_KEY
        assert is_debug or current_secret != dev_secret, '\nIt seems the DEBUG flag is False; however, ' \
                                                         'the secret key remains the same as it is at dev settings.\n' \
                                                         'If you were in production it would be a serious security ' \
                                                         'issue.\nPlease, change the SECRET_KEY value at settings.'