Source code for concrete_settings.contrib.frameworks.django30

from typing import Dict, List, Tuple, Optional

from concrete_settings import Settings, Undefined

# This is defined here as a do-nothing function because we can't import
# django.utils.translation -- that module depends on the settings.
from concrete_settings.contrib.behaviors import required


# flake8: noqa


def gettext_noop(s):
    return s


[docs]class Django30Settings(Settings): DEBUG: bool = False #: Whether the framework should propagate raw exceptions rather than catching #: them. This is useful under some testing situations and should never be used #: on a live site. DEBUG_PROPAGATE_EXCEPTIONS: bool = False #: People who get code error notifications. #: In the format [ # ('Full Name', 'email@example.com'), # ('Full Name', 'anotheremail@example.com') # ] ADMINS: List[Tuple[str, str]] = [] #: List of IP addresses, as strings, that: #: * See debug comments, when DEBUG is true #: * Receive x-headers INTERNAL_IPS: List = [] #: Hosts/domain names that are valid for this site. #: "*" matches anything, ".example.com" matches example.com and all subdomains ALLOWED_HOSTS: List = [] #: Local time zone for this installation. All choices can be found here: #: https://en.wikipedia.org/wiki/List_of_tz_zones_by_name (although not all #: systems may support all possibilities). When USE_TZ is True, this is #: interpreted as the default user time zone. TIME_ZONE: str = 'America/Chicago' #: If you set this to True, Django will use timezone-aware datetimes. USE_TZ: bool = False #: Language code for this installation. All choices can be found here: #: http://www.i18nguy.com/unicode/language-identifiers.html LANGUAGE_CODE: str = 'en-us' #: Languages we provide translations for, out of the box. LANGUAGES: List[Tuple] = [ ('af', gettext_noop('Afrikaans')), ('ar', gettext_noop('Arabic')), ('ast', gettext_noop('Asturian')), ('az', gettext_noop('Azerbaijani')), ('bg', gettext_noop('Bulgarian')), ('be', gettext_noop('Belarusian')), ('bn', gettext_noop('Bengali')), ('br', gettext_noop('Breton')), ('bs', gettext_noop('Bosnian')), ('ca', gettext_noop('Catalan')), ('cs', gettext_noop('Czech')), ('cy', gettext_noop('Welsh')), ('da', gettext_noop('Danish')), ('de', gettext_noop('German')), ('dsb', gettext_noop('Lower Sorbian')), ('el', gettext_noop('Greek')), ('en', gettext_noop('English')), ('en-au', gettext_noop('Australian English')), ('en-gb', gettext_noop('British English')), ('eo', gettext_noop('Esperanto')), ('es', gettext_noop('Spanish')), ('es-ar', gettext_noop('Argentinian Spanish')), ('es-co', gettext_noop('Colombian Spanish')), ('es-mx', gettext_noop('Mexican Spanish')), ('es-ni', gettext_noop('Nicaraguan Spanish')), ('es-ve', gettext_noop('Venezuelan Spanish')), ('et', gettext_noop('Estonian')), ('eu', gettext_noop('Basque')), ('fa', gettext_noop('Persian')), ('fi', gettext_noop('Finnish')), ('fr', gettext_noop('French')), ('fy', gettext_noop('Frisian')), ('ga', gettext_noop('Irish')), ('gd', gettext_noop('Scottish Gaelic')), ('gl', gettext_noop('Galician')), ('he', gettext_noop('Hebrew')), ('hi', gettext_noop('Hindi')), ('hr', gettext_noop('Croatian')), ('hsb', gettext_noop('Upper Sorbian')), ('hu', gettext_noop('Hungarian')), ('hy', gettext_noop('Armenian')), ('ia', gettext_noop('Interlingua')), ('id', gettext_noop('Indonesian')), ('io', gettext_noop('Ido')), ('is', gettext_noop('Icelandic')), ('it', gettext_noop('Italian')), ('ja', gettext_noop('Japanese')), ('ka', gettext_noop('Georgian')), ('kab', gettext_noop('Kabyle')), ('kk', gettext_noop('Kazakh')), ('km', gettext_noop('Khmer')), ('kn', gettext_noop('Kannada')), ('ko', gettext_noop('Korean')), ('lb', gettext_noop('Luxembourgish')), ('lt', gettext_noop('Lithuanian')), ('lv', gettext_noop('Latvian')), ('mk', gettext_noop('Macedonian')), ('ml', gettext_noop('Malayalam')), ('mn', gettext_noop('Mongolian')), ('mr', gettext_noop('Marathi')), ('my', gettext_noop('Burmese')), ('nb', gettext_noop('Norwegian Bokmål')), ('ne', gettext_noop('Nepali')), ('nl', gettext_noop('Dutch')), ('nn', gettext_noop('Norwegian Nynorsk')), ('os', gettext_noop('Ossetic')), ('pa', gettext_noop('Punjabi')), ('pl', gettext_noop('Polish')), ('pt', gettext_noop('Portuguese')), ('pt-br', gettext_noop('Brazilian Portuguese')), ('ro', gettext_noop('Romanian')), ('ru', gettext_noop('Russian')), ('sk', gettext_noop('Slovak')), ('sl', gettext_noop('Slovenian')), ('sq', gettext_noop('Albanian')), ('sr', gettext_noop('Serbian')), ('sr-latn', gettext_noop('Serbian Latin')), ('sv', gettext_noop('Swedish')), ('sw', gettext_noop('Swahili')), ('ta', gettext_noop('Tamil')), ('te', gettext_noop('Telugu')), ('th', gettext_noop('Thai')), ('tr', gettext_noop('Turkish')), ('tt', gettext_noop('Tatar')), ('udm', gettext_noop('Udmurt')), ('uk', gettext_noop('Ukrainian')), ('ur', gettext_noop('Urdu')), ('uz', gettext_noop('Uzbek')), ('vi', gettext_noop('Vietnamese')), ('zh-hans', gettext_noop('Simplified Chinese')), ('zh-hant', gettext_noop('Traditional Chinese')), ] #: Languages using BiDi (right-to-left) layout LANGUAGES_BIDI: List[str] = ["he", "ar", "fa", "ur"] #: If you set this to False, Django will make some optimizations so as not #: to load the internationalization machinery. USE_I18N: bool = True LOCALE_PATHS: List = [] # Settings for language cookie LANGUAGE_COOKIE_NAME: str = 'django_language' #: The age of the language cookie, in seconds. LANGUAGE_COOKIE_AGE: Optional[int] = None #: The domain to use for the language cookie. #: Set this to a string such as "example.com" #: for cross-domain cookies, or use None for a standard domain cookie. LANGUAGE_COOKIE_DOMAIN: Optional[str] = None LANGUAGE_COOKIE_PATH: str = '/' LANGUAGE_COOKIE_SECURE: bool = False LANGUAGE_COOKIE_HTTPONLY: bool = False LANGUAGE_COOKIE_SAMESITE: Optional[str] = None #: If you set this to True, Django will format dates, numbers and calendars #: according to user current locale. USE_L10N: bool = False #: Not-necessarily-technical managers of the site. They get broken link #: notifications and other various emails. MANAGERS: List[Tuple[str, str]] = ADMINS #: Default charset to use for all HttpResponse objects, if a MIME type isn't #: manually specified. It's used to construct the Content-Type header. DEFAULT_CHARSET: str = 'utf-8' #: Encoding of files read from disk (template and initial SQL files). FILE_CHARSET: str = 'utf-8' #: Email address that error messages come from. SERVER_EMAIL: str = 'root@localhost' #: Database connection info. If left empty, will default to the dummy backend. DATABASES: Dict = {} #: Classes used to implement DB routing behavior. DATABASE_ROUTERS: list = [] #: The email backend to use. For possible shortcuts see django.core.mail. #: The default is to use the SMTP backend. #: Third-party backends can be specified by providing a Python path #: to a module that defines an EmailBackend class. EMAIL_BACKEND: str = 'django.core.mail.backends.smtp.EmailBackend' #: Host for sending email. EMAIL_HOST: str = 'localhost' #: Port for sending email. EMAIL_PORT: int = 25 #: Whether to send SMTP 'Date' header in the local time zone or in UTC. EMAIL_USE_LOCALTIME: bool = False #: Optional SMTP authentication information for EMAIL_HOST. EMAIL_HOST_USER: str = '' EMAIL_HOST_PASSWORD: str = '' EMAIL_USE_TLS: bool = False EMAIL_USE_SSL: bool = False #: If EMAIL_USE_SSL or EMAIL_USE_TLS is True, you can optionally specify #: the path to a PEM-formatted certificate chain file to use for the #: SSL connection. EMAIL_SSL_CERTFILE: Optional[str] = None #: If EMAIL_USE_SSL or EMAIL_USE_TLS is True, you can optionally specify #: the path to a PEM-formatted private key file to use for the #: SSL connection. EMAIL_SSL_KEYFILE: Optional[str] = None #: Specifies a timeout in seconds for blocking operations like the connection #: attempt. EMAIL_TIMEOUT: Optional[int] = None #: List of strings representing installed apps. INSTALLED_APPS: List = [] TEMPLATES: List = [] #: Default form rendering class. FORM_RENDERER: str = 'django.forms.renderers.DjangoTemplates' #: Default email address to use for various automated correspondence from #: the site managers. DEFAULT_FROM_EMAIL: str = 'webmaster@localhost' #: Subject-line prefix for email messages send with django.core.mail.mail_admins #: or ...mail_managers. Make sure to include the trailing space. EMAIL_SUBJECT_PREFIX: str = '[Django] ' #: Whether to append trailing slashes to URLs. APPEND_SLASH: bool = True #: Whether to prepend the "www." subdomain to URLs that don't have it. PREPEND_WWW: bool = False #: Override the server-derived value of SCRIPT_NAME FORCE_SCRIPT_NAME: Optional[str] = None #: List of compiled regular expression objects representing User-Agent strings #: that are not allowed to visit any page, systemwide. Use this for bad #: robots/crawlers. Here are a few examples: #: import re #: DISALLOWED_USER_AGENTS = [ #: re.compile(r'^NaverBot.*'), #: re.compile(r'^EmailSiphon.*'), #: re.compile(r'^SiteSucker.*'), #: re.compile(r'^sohu-search'), #: ] DISALLOWED_USER_AGENTS: List = [] ABSOLUTE_URL_OVERRIDES: Dict = {} #: List of compiled regular expression objects representing URLs that need not #: be reported by BrokenLinkEmailsMiddleware. Here are a few examples: #: import re #: IGNORABLE_404_URLS = [ #: re.compile(r'^/apple-touch-icon.*\.png$'), #: re.compile(r'^/favicon.ico$'), #: re.compile(r'^/robots.txt$'), #: re.compile(r'^/phpmyadmin/'), #: re.compile(r'\.(cgi|php|pl)$'), #: ] IGNORABLE_404_URLS: List = [] #: A secret key for this particular Django installation. Used in secret-key #: hashing algorithms. Set this in your settings, or Django will complain #: loudly. SECRET_KEY: str = '' #: Default file storage mechanism that holds media. DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage' #: Absolute filesystem path to the directory that will hold user-uploaded files. #: Example: "/var/www/example.com/media/" MEDIA_ROOT: str = '' #: URL that handles the media served from MEDIA_ROOT. #: Examples: "http://example.com/media/", "http://media.example.com/" MEDIA_URL: str = '' #: Absolute path to the directory static files should be collected to. #: Example: "/var/www/example.com/static/" STATIC_ROOT: Optional[str] = None #: URL that handles the static files served from STATIC_ROOT. #: Example: "http://example.com/static/", "http://static.example.com/" STATIC_URL: Optional[str] = None #: List of upload handler classes to be applied in order. FILE_UPLOAD_HANDLERS: List[str] = [ 'django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler', ] #: Maximum size, in bytes, of a request before it will be streamed to the #: file system instead of into memory. FILE_UPLOAD_MAX_MEMORY_SIZE: int = 2621440 # i.e. 2.5 MB #: Maximum size in bytes of request data (excluding file uploads) that will be #: read before a SuspiciousOperation (RequestDataTooBig) is raised. DATA_UPLOAD_MAX_MEMORY_SIZE: int = 2621440 # i.e. 2.5 MB #: Maximum number of GET/POST parameters that will be read before a #: SuspiciousOperation (TooManyFieldsSent) is raised. DATA_UPLOAD_MAX_NUMBER_FIELDS: int = 1000 #: Directory in which upload streamed files will be temporarily saved. A value of #: `None` will make Django use the operating system's default temporary directory #: (i.e. "/tmp" on *nix systems). FILE_UPLOAD_TEMP_DIR: Optional[str] = None #: The numeric mode to set newly-uploaded files to. The value should be a mode #: you'd pass directly to os.chmod; # see https://docs.python.org/library/os.html#files-and-directories. FILE_UPLOAD_PERMISSIONS: int = 0o644 #: The numeric mode to assign to newly-created directories, when uploading files. #: The value should be a mode as you'd pass to os.chmod; #: see https://docs.python.org/library/os.html#files-and-directories. FILE_UPLOAD_DIRECTORY_PERMISSIONS: Optional[int] = None #: Python module path where user will place custom format definition. #: The directory where this setting is pointing should contain subdirectories #: named as the locales, containing a formats.py file #: (i.e. "myproject.locale" for myproject/locale/en/formats.py etc. use) FORMAT_MODULE_PATH: Optional[str] = None #: Default formatting for date objects. See all available format strings here: #: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date DATE_FORMAT: str = 'N j, Y' #: Default formatting for datetime objects. See all available format strings here: #: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date DATETIME_FORMAT: str = 'N j, Y, P' #: Default formatting for time objects. See all available format strings here: #: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date TIME_FORMAT: str = 'P' #: Default formatting for date objects when only the year and month are relevant. #: See all available format strings here: #: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date YEAR_MONTH_FORMAT: str = 'F Y' #: Default formatting for date objects when only the month and day are relevant. #: See all available format strings here: #: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date MONTH_DAY_FORMAT: str = 'F j' #: Default short formatting for date objects. See all available format strings here: #: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date SHORT_DATE_FORMAT: str = 'm/d/Y' #: Default short formatting for datetime objects. #: See all available format strings here: #: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date SHORT_DATETIME_FORMAT: str = 'm/d/Y P' #: Default formats to be used when parsing dates from input boxes, in order #: See all available format string here: #: https://docs.python.org/library/datetime.html#strftime-behavior #: * Note that these format strings are different from the ones to display dates DATE_INPUT_FORMATS: List[str] = [ '%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06' '%b %d %Y', '%b %d, %Y', # 'Oct 25 2006', 'Oct 25, 2006' '%d %b %Y', '%d %b, %Y', # '25 Oct 2006', '25 Oct, 2006' '%B %d %Y', '%B %d, %Y', # 'October 25 2006', 'October 25, 2006' '%d %B %Y', '%d %B, %Y', # '25 October 2006', '25 October, 2006' ] #: Default formats to be used when parsing times from input boxes, in order #: See all available format string here: #: https://docs.python.org/library/datetime.html#strftime-behavior #: * Note that these format strings are different from the ones to display dates TIME_INPUT_FORMATS: List[str] = [ '%H:%M:%S', # '14:30:59' '%H:%M:%S.%f', # '14:30:59.000200' '%H:%M', # '14:30' ] #: Default formats to be used when parsing dates and times from input boxes, #: in order #: See all available format string here: #: https://docs.python.org/library/datetime.html#strftime-behavior #: * Note that these format strings are different from the ones to display dates DATETIME_INPUT_FORMATS: List[str] = [ '%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59' '%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200' '%Y-%m-%d %H:%M', # '2006-10-25 14:30' '%Y-%m-%d', # '2006-10-25' '%m/%d/%Y %H:%M:%S', # '10/25/2006 14:30:59' '%m/%d/%Y %H:%M:%S.%f', # '10/25/2006 14:30:59.000200' '%m/%d/%Y %H:%M', # '10/25/2006 14:30' '%m/%d/%Y', # '10/25/2006' '%m/%d/%y %H:%M:%S', # '10/25/06 14:30:59' '%m/%d/%y %H:%M:%S.%f', # '10/25/06 14:30:59.000200' '%m/%d/%y %H:%M', # '10/25/06 14:30' '%m/%d/%y', # '10/25/06' ] #: First day of week, to be used on calendars #: 0 means Sunday, 1 means Monday... FIRST_DAY_OF_WEEK: int = 0 #: Decimal separator symbol DECIMAL_SEPARATOR: str = '.' #: Boolean that sets whether to add thousand separator when formatting numbers USE_THOUSAND_SEPARATOR: bool = False #: Number of digits that will be together, when splitting them by #: THOUSAND_SEPARATOR. 0 means no grouping, 3 means splitting by thousands... NUMBER_GROUPING: int = 0 #: Thousand separator symbol THOUSAND_SEPARATOR: str = ',' #: The tablespaces to use for each model when not specified otherwise. DEFAULT_TABLESPACE: str = '' DEFAULT_INDEX_TABLESPACE: str = '' #: Default X-Frame-Options header value X_FRAME_OPTIONS: str = 'DENY' USE_X_FORWARDED_HOST: bool = False USE_X_FORWARDED_PORT: bool = False #: The Python dotted path to the WSGI application that Django's internal server #: (runserver) will use. If `None`, the return value of #: 'django.core.wsgi.get_wsgi_application' is used, thus preserving the same #: behavior as previous versions of Django. Otherwise this should point to an #: actual WSGI application object. WSGI_APPLICATION: Optional[str] = None #: If your Django app is behind a proxy that sets a header to specify secure #: connections, AND that proxy ensures that user-submitted headers with the #: same name are ignored (so that people can't spoof it), set this value to #: a tuple of (header_name, header_value). For any requests that come in with #: that header/value, request.is_secure() will return True. #: WARNING! Only set this if you fully understand what you're doing. Otherwise, #: you may be opening yourself up to a security risk. SECURE_PROXY_SSL_HEADER: Optional[Tuple] = None ############## # MIDDLEWARE # ############## # List of middleware to use. Order is important; in the request phase, these # middleware will be applied in the order given, and in the response # phase the middleware will be applied in reverse order. MIDDLEWARE: List[str] = [] ############ # SESSIONS # ############ #: Cache to store session data if using the cache session backend. SESSION_CACHE_ALIAS: str = 'default' #: Cookie name. This can be whatever you want. SESSION_COOKIE_NAME: str = 'sessionid' #: Age of cookie, in seconds (default: 2 weeks). SESSION_COOKIE_AGE: int = 60 * 60 * 24 * 7 * 2 #: A string like "example.com", or None for standard domain cookie. SESSION_COOKIE_DOMAIN: Optional[str] = None #: Whether the session cookie should be secure (https:// only). SESSION_COOKIE_SECURE: bool = False #: The path of the session cookie. SESSION_COOKIE_PATH: str = '/' #: Whether to use the HttpOnly flag. SESSION_COOKIE_HTTPONLY: bool = True #: Whether to set the flag restricting cookie leaks on cross-site requests. #: This can be 'Lax', 'Strict', or None to disable the flag. SESSION_COOKIE_SAMESITE: Optional[str] = 'Lax' #: Whether to save the session data on every request. SESSION_SAVE_EVERY_REQUEST: bool = False #: Whether a user's session cookie expires when the Web browser is closed. SESSION_EXPIRE_AT_BROWSER_CLOSE: bool = False #: The module to store session data SESSION_ENGINE: str = 'django.contrib.sessions.backends.db' #: Directory to store session files if using the file session module. If None, #: the backend will use a sensible default. SESSION_FILE_PATH: Optional[str] = None #: class to serialize session data SESSION_SERIALIZER: str = 'django.contrib.sessions.serializers.JSONSerializer' ######### # CACHE # ######### # The cache backends to use. CACHES: dict = { 'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'} } CACHE_MIDDLEWARE_KEY_PREFIX: str = '' CACHE_MIDDLEWARE_SECONDS: int = 600 CACHE_MIDDLEWARE_ALIAS: str = 'default' ################## # AUTHENTICATION # ################## AUTH_USER_MODEL: str = 'auth.User' AUTHENTICATION_BACKENDS: List[str] = ['django.contrib.auth.backends.ModelBackend'] LOGIN_URL: str = '/accounts/login/' LOGIN_REDIRECT_URL: str = '/accounts/profile/' LOGOUT_REDIRECT_URL: Optional[str] = None #: The number of days a password reset link is valid for PASSWORD_RESET_TIMEOUT_DAYS: int = 3 #: The first hasher in this list is the preferred algorithm. any #: password using different algorithms will be converted automatically #: upon login PASSWORD_HASHERS: List[str] = [ 'django.contrib.auth.hashers.PBKDF2PasswordHasher', 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', 'django.contrib.auth.hashers.Argon2PasswordHasher', 'django.contrib.auth.hashers.BCryptSHA256PasswordHasher', ] AUTH_PASSWORD_VALIDATORS: List[Dict] = [] ########### # SIGNING # ########### SIGNING_BACKEND: str = 'django.core.signing.TimestampSigner' ######## # CSRF # ######## #: Dotted path to callable to be used as view when a request is #: rejected by the CSRF middleware. CSRF_FAILURE_VIEW: str = 'django.views.csrf.csrf_failure' # Settings for CSRF cookie. CSRF_COOKIE_NAME: str = 'csrftoken' CSRF_COOKIE_AGE: int = 60 * 60 * 24 * 7 * 52 CSRF_COOKIE_DOMAIN: Optional[str] = None CSRF_COOKIE_PATH: str = '/' CSRF_COOKIE_SECURE: bool = False CSRF_COOKIE_HTTPONLY: bool = False CSRF_COOKIE_SAMESITE: Optional[str] = 'Lax' CSRF_HEADER_NAME: str = 'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS: List[str] = [] CSRF_USE_SESSIONS: bool = False ############ # MESSAGES # ############ #: Class to use as messages backend MESSAGE_STORAGE: str = 'django.contrib.messages.storage.fallback.FallbackStorage' # Default values of MESSAGE_LEVEL and MESSAGE_TAGS are defined within # django.contrib.messages to avoid imports in this settings file. ########### # LOGGING # ########### #: The callable to use to configure logging LOGGING_CONFIG: str = 'logging.config.dictConfig' #: Custom logging configuration. LOGGING: Dict = {} #: Default exception reporter filter class used in case none has been #: specifically assigned to the HttpRequest instance. DEFAULT_EXCEPTION_REPORTER_FILTER: str = 'django.views.debug.SafeExceptionReporterFilter' ########### # TESTING # ########### #: The name of the class to use to run the test suite TEST_RUNNER: str = 'django.test.runner.DiscoverRunner' #: Apps that don't need to be serialized at test database creation time #: (only apps with migrations are to start with) TEST_NON_SERIALIZED_APPS: List[str] = [] ############ # FIXTURES # ############ #: The list of directories to search for fixtures FIXTURE_DIRS: List[str] = [] ############### # STATICFILES # ############### #: A list of locations of additional static files STATICFILES_DIRS: List[str] = [] #: The default file storage backend used during the build process STATICFILES_STORAGE: str = 'django.contrib.staticfiles.storage.StaticFilesStorage' #: List of finder classes that know how to find static files in #: various locations. STATICFILES_FINDERS: List[str] = [ 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', # 'django.contrib.staticfiles.finders.DefaultStorageFinder', ] ############## # MIGRATIONS # ############## #: Migration module overrides for apps, by app label. MIGRATION_MODULES: Dict[str, str] = {} ################# # SYSTEM CHECKS # ################# #: List of all issues generated by system checks that should be silenced. Light #: issues like warnings, infos or debugs will not generate a message. Silencing #: serious issues like errors and criticals does not result in hiding the #: message, but Django will not stop you from e.g. running server. SILENCED_SYSTEM_CHECKS: List[str] = [] ####################### # SECURITY MIDDLEWARE # ####################### SECURE_BROWSER_XSS_FILTER: bool = False SECURE_CONTENT_TYPE_NOSNIFF: bool = True SECURE_HSTS_INCLUDE_SUBDOMAINS: bool = False SECURE_HSTS_PRELOAD: bool = False SECURE_HSTS_SECONDS: int = 0 SECURE_REDIRECT_EXEMPT: List[str] = [] SECURE_REFERRER_POLICY: Optional[str] = None SECURE_SSL_HOST: Optional[str] = None SECURE_SSL_REDIRECT: bool = False ############## # Undefined ############## #: A string representing the full Python import path to your root URLconf, #: for example "mydjangoapps.urls". ROOT_URLCONF: str = Undefined @ required