skillfed

django-split-settings

Organize Django settings into multiple files and directories. Easily override and modify settings. Use wildcards and optional settings files.

django-split-settings v1.3.2 363.3K downloads/30d#7,222 on PyPI
Permissive license BSD-2-Clause DORMANT released

What it is and what it does

django-split-settings lets you break a monolithic Django settings.py into separate, composable files organized by concern—database config, installed apps, logging, environment-specific overrides—and include them in order. Each included file has access to the settings namespace built by previous files, so later files can import and modify earlier settings. You can use glob wildcards to include groups of files, mark files as optional (included only if they exist), and organize settings hierarchically in subdirectories.

The package is a pure-Python utility with no dependencies, making it lightweight to add to any Django project. It's useful for teams managing multiple environments (dev, staging, production), for large projects where settings have grown unwieldy, or for monorepos where different services need different configurations. The main gotcha is that BASE_DIR path calculations need adjustment when settings becomes a module instead of a single file.

Use it for:

  • Separate database, cache, logging, and app-specific settings into individual files for clarity and reuse.
  • Manage environment-specific overrides without duplicating base configuration across dev, staging, and production.
  • Organize settings by feature or app in a large Django project to reduce merge conflicts and improve maintainability.
  • Use wildcards to auto-include all settings from a directory without manually listing each file.
  • Mark optional settings files so local developer overrides don't break CI/CD or production deployments.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Splits Django settings across multiple files and directories with support for wildcards, optional files, and environment-specific overrides.

Yes. The package is stable (Production/Stable status, no known vulnerabilities), has zero dependencies, and solves a real pain point in Django configuration management. Dormant maintenance is a minor concern—the package is simple and unlikely to need frequent updates—but verify compatibility with your specific Django and Python versions before adopting.

Install

django-split-settings on PyPI

pip

pip install django-split-settings

uv

uv add django-split-settings

poetry

poetry add django-split-settings

Installing django-split-settings

Before you install

Low friction: no runtime dependencies, pure Python wheel. Dormant maintenance (770 days since last release) but stable and production-ready; officially supports Django 4.2, 5.0, 5.1 and Python 3.9–3.12.

License in practice

BSD-2-Clause permissive license; no restrictions on use, modification, or distribution in commercial or private projects.

Quickstart

pip install django-split-settings

# In settings/__init__.py or settings.py:
from django_split_settings import optional, include

include(
    'components/base.py',
    'components/database.py',
    optional('local_settings.py')
)

Requires Python 3.9+ and Django 4.2, 5.0, or 5.1; BASE_DIR path calculation changes when settings becomes a module rather than a file.

Verify before relying

  • Whether dormant status (no commits in 770 days) affects compatibility with future Django or Python releases.
  • Performance impact of wildcard includes on large numbers of settings files.
  • Exact import path and API surface of the package's public interface.

Package facts

License BSD-2-Clause (permissive)
Python support supports the current Python release (<4.0,>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance dormant — 770 days since the last release
First released
Downloads 363,342/month — #7,222 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: django_split_settings-1.3.2-py3-none-any.whl

Keywords: django, settings, configuration, config

Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentFramework :: DjangoFramework :: Django :: 3.2Framework :: Django :: 4.0Framework :: Django :: 4.1Framework :: Django :: 4.2Framework :: Django :: 5.0Intended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.9Topic :: Internet :: WWW/HTTPTopic :: Internet :: WWW/HTTP :: Dynamic ContentTopic :: Software Development :: Libraries :: Python Modules

Tags

django settings organizationsplit django configurationdjango settings managementmodular django configdjango settings filesdjango environment settingsdjango config inheritance
django-configsettings-management

More Python Modules packages