Spaces:
Sleeping
Sleeping
| """ | |
| Django settings for core project. | |
| Generated by 'django-admin startproject' using Django 6.0 | |
| """ | |
| import os | |
| from pathlib import Path | |
| from dotenv import load_dotenv | |
| # -------------------------------------------------- | |
| # BASE DIRECTORY | |
| # -------------------------------------------------- | |
| BASE_DIR = Path(__file__).resolve().parent.parent | |
| load_dotenv(BASE_DIR / ".env") | |
| # -------------------------------------------------- | |
| # SECURITY | |
| # -------------------------------------------------- | |
| SECRET_KEY = os.getenv("SECRET_KEY", "django-insecure-change-this-in-production") | |
| DEBUG=False | |
| allowed_hosts_env = os.getenv("ALLOWED_HOSTS", "") | |
| if allowed_hosts_env: | |
| ALLOWED_HOSTS = [host.strip() for host in allowed_hosts_env.split(",")] | |
| else: | |
| if not DEBUG: | |
| ALLOWED_HOSTS = ["localhost", "127.0.0.1", "web", "django_nginx"] | |
| else: | |
| ALLOWED_HOSTS = [] | |
| print("DEBUG from env:", os.getenv("DEBUG")) | |
| print("DEBUG after parsing:", DEBUG) | |
| print("ALLOWED_HOSTS:", ALLOWED_HOSTS) | |
| # -------------------------------------------------- | |
| # APPLICATIONS | |
| # -------------------------------------------------- | |
| INSTALLED_APPS = [ | |
| # Django default | |
| "django.contrib.admin", | |
| "django.contrib.auth", | |
| "django.contrib.contenttypes", | |
| "django.contrib.sessions", | |
| "django.contrib.messages", | |
| "django.contrib.staticfiles", | |
| "django.contrib.sites", | |
| # Mini apps | |
| "universe", | |
| "testaccounts", | |
| "testprofiles", | |
| "study", | |
| "collection", | |
| "portfolio", | |
| "xomni", | |
| ] | |
| SITE_ID = 1 | |
| # -------------------------------------------------- | |
| # MIDDLEWARE | |
| # -------------------------------------------------- | |
| MIDDLEWARE = [ | |
| "django.middleware.security.SecurityMiddleware", | |
| "django.contrib.sessions.middleware.SessionMiddleware", | |
| "django.middleware.common.CommonMiddleware", | |
| "django.middleware.csrf.CsrfViewMiddleware", | |
| "django.contrib.auth.middleware.AuthenticationMiddleware", | |
| "django.contrib.messages.middleware.MessageMiddleware", | |
| "django.middleware.clickjacking.XFrameOptionsMiddleware", | |
| ] | |
| # -------------------------------------------------- | |
| # URL CONFIG | |
| # -------------------------------------------------- | |
| ROOT_URLCONF = "core.urls" | |
| # -------------------------------------------------- | |
| # TEMPLATES | |
| # -------------------------------------------------- | |
| TEMPLATES = [ | |
| { | |
| "BACKEND": "django.template.backends.django.DjangoTemplates", | |
| "DIRS": [BASE_DIR / "templates"], # GLOBAL templates | |
| "APP_DIRS": True, | |
| "OPTIONS": { | |
| "context_processors": [ | |
| "django.template.context_processors.debug", | |
| "django.template.context_processors.request", | |
| "django.contrib.auth.context_processors.auth", | |
| "django.contrib.messages.context_processors.messages", | |
| ], | |
| }, | |
| }, | |
| ] | |
| # -------------------------------------------------- | |
| # WSGI | |
| # -------------------------------------------------- | |
| WSGI_APPLICATION = "core.wsgi.application" | |
| # -------------------------------------------------- | |
| # DATABASE | |
| # -------------------------------------------------- | |
| DATABASE_ENGINE = os.getenv("DATABASE_ENGINE", "django.db.backends.sqlite3") | |
| DATABASES = { | |
| "default": { | |
| "ENGINE": DATABASE_ENGINE, | |
| "NAME": os.getenv("DATABASE_NAME", BASE_DIR / "db.sqlite3"), | |
| "USER": os.getenv("DATABASE_USER", ""), | |
| "PASSWORD": os.getenv("DATABASE_PASSWORD", ""), | |
| "HOST": os.getenv("DATABASE_HOST", ""), | |
| "PORT": os.getenv("DATABASE_PORT", ""), | |
| } | |
| } | |
| # Add sslmode option only if using PostgreSQL | |
| if DATABASE_ENGINE == "django.db.backends.postgresql": | |
| DATABASES["default"]["OPTIONS"] = { | |
| "sslmode": "require", | |
| } | |
| # -------------------------------------------------- | |
| # PASSWORD VALIDATION | |
| # -------------------------------------------------- | |
| AUTH_PASSWORD_VALIDATORS = [ | |
| { | |
| "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", | |
| }, | |
| { | |
| "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator", | |
| }, | |
| { | |
| "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator", | |
| }, | |
| { | |
| "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator", | |
| }, | |
| ] | |
| # -------------------------------------------------- | |
| # AUTH REDIRECTS | |
| # -------------------------------------------------- | |
| LOGIN_URL = '/testaccounts/login/' | |
| LOGOUT_REDIRECT_URL = '/testaccounts/login/' | |
| # -------------------------------------------------- | |
| # EMAIL (DEV MODE) | |
| # -------------------------------------------------- | |
| EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend" | |
| # -------------------------------------------------- | |
| # INTERNATIONALIZATION | |
| # -------------------------------------------------- | |
| LANGUAGE_CODE = "en-us" | |
| TIME_ZONE = "UTC" | |
| USE_I18N = True | |
| USE_TZ = True | |
| # -------------------------------------------------- | |
| # STATIC FILES | |
| # -------------------------------------------------- | |
| STATIC_URL = "/static/" | |
| STATIC_ROOT = BASE_DIR / "staticfiles" | |
| if DEBUG: | |
| STATICFILES_DIRS = [BASE_DIR / "static"] | |
| # -------------------------------------------------- | |
| # DEFAULT PRIMARY KEY | |
| # -------------------------------------------------- | |
| DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" | |