Заменить BaseSettings на BaseModel
Пример кода из env_settings.py:
gitlab.dvmn.org/…/env_settings.py
class DjangoSettings(BaseSettings):
SECRET_KEY: str
DEBUG: bool = Field(
default=False,
description='Disabled by default to protect admin from credentials leak on production environment '
'when env param get wrong value. That happends because of param name typos '
'and another common configuration mistakes.',
)
ALLOWED_HOSTS: list[str] = ['127.0.0.1', 'localhost']
CSRF_TRUSTED_ORIGINS: list[str] = Field(
default=[],
description='Trusted origins for CSRF checks.',
)
STATIC_URL: str = 'static/'
MEDIA_URL: str = 'media/'
parse_comma_separated_values = validator('ALLOWED_HOSTS', 'CSRF_TRUSTED_ORIGINS', pre=True, allow_reuse=True)(
parse_comma_separated,
)
class RollbarSettings(BaseSettings):
BACKEND_TOKEN: str
ENVIRONMENT: str
class EnvSettings(BaseSettings):
DJ: DjangoSettings
POSTGRES_DSN: PostgresDsn
...
Для вложенных схем в качествве базового класса надо использовать BaseModel вместо BaseSettings.