From 5d378b7b19a57e595128571b09cef558335f7610 Mon Sep 17 00:00:00 2001 From: Ryan Westfall Date: Tue, 7 Jul 2026 13:13:57 -0500 Subject: [PATCH] fix(settings): accept JSON-array env lists in env_list The production .env stores DJANGO_ALLOWED_HOSTS as a JSON array (legacy format), but env_list only split on commas, yielding broken entries like '["aimloperations.com"' and causing DisallowedHost (HTTP 400) for every request. Parse JSON arrays as well as comma-separated values. Co-authored-by: Cursor --- company_site/company_site/settings/base.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/company_site/company_site/settings/base.py b/company_site/company_site/settings/base.py index a48a105..ba7ac65 100644 --- a/company_site/company_site/settings/base.py +++ b/company_site/company_site/settings/base.py @@ -1,5 +1,6 @@ """Shared Django settings for all environments.""" +import json import os from pathlib import Path from urllib.parse import urlparse @@ -22,6 +23,15 @@ def env_list(key: str, default: str = "") -> list[str]: value = os.environ.get(key, default) if not value: return [] + value = value.strip() + # Accept a JSON array (e.g. '["a","b"]') as well as a comma-separated list. + if value.startswith("["): + try: + parsed = json.loads(value) + except ValueError: + parsed = None + if isinstance(parsed, list): + return [str(item).strip() for item in parsed if str(item).strip()] return [item.strip() for item in value.split(",") if item.strip()]