diff --git a/InvenTree/common/apps.py b/InvenTree/common/apps.py index 58d05c0391..a2253c1066 100644 --- a/InvenTree/common/apps.py +++ b/InvenTree/common/apps.py @@ -23,7 +23,7 @@ class CommonConfig(AppConfig): try: import common.models - if common.models.InvenTreeSetting.get_setting('SERVER_RESTART_REQUIRED'): + if common.models.InvenTreeSetting.get_setting('SERVER_RESTART_REQUIRED', backup_value=False, create=False): logger.info("Clearing SERVER_RESTART_REQUIRED flag") common.models.InvenTreeSetting.set_setting('SERVER_RESTART_REQUIRED', False, None) except: diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index fe6ddecbba..a97b72e717 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -268,20 +268,24 @@ class BaseInvenTreeSetting(models.Model): # Setting does not exist! (Try to create it) if not setting: - # Attempt to create a new settings object - setting = cls( - key=key, - value=cls.get_setting_default(key, **kwargs), - **kwargs - ) + # Unless otherwise specified, attempt to create the setting + create = kwargs.get('create', True) - try: - # Wrap this statement in "atomic", so it can be rolled back if it fails - with transaction.atomic(): - setting.save() - except (IntegrityError, OperationalError): - # It might be the case that the database isn't created yet - pass + if create: + # Attempt to create a new settings object + setting = cls( + key=key, + value=cls.get_setting_default(key, **kwargs), + **kwargs + ) + + try: + # Wrap this statement in "atomic", so it can be rolled back if it fails + with transaction.atomic(): + setting.save() + except (IntegrityError, OperationalError): + # It might be the case that the database isn't created yet + pass return setting