skillfed

django-settings-holder

Object that allows settings to be accessed with attributes.

django-settings-holder v0.3.0 157.4K downloads/30d#10,758 on PyPI1
Permissive license MIT Active released

What it is and what it does

Django Settings Holder is a utility library designed for Django extension authors who need to manage their own configuration dictionaries. It wraps settings in a SettingsHolder class that lets you access configuration values as object attributes rather than dictionary keys, making code more readable and IDE-friendly.

The package automatically listens to Django's `setting_changed` signal, so user-defined settings are reloaded without requiring manual intervention. It also supports dot-notation imports (e.g., 'mymodule.myfunction') that are resolved automatically, and allows you to attach validators to settings that run when they are first accessed. This is particularly useful for Django packages that expose their own configuration options and want a clean, maintainable way to manage them.

Use it for:

  • Building a Django package that needs its own settings namespace with attribute-style access.
  • Validating extension settings at runtime without cluttering your package's initialization code.
  • Automatically reloading extension configuration when Django's settings change (e.g., in tests or during development).
  • Importing callable functions by string path and making them available as settings attributes.
  • Providing a consistent, type-hinted settings interface for Django extensions.

Worth the install?

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

Provides a settings container for Django extensions that allows configuration values to be accessed as object attributes, with automatic reloading from Django's settings change signal and optional validators.

Yes, if you are developing a Django extension or package that needs to expose configuration options. The library is actively maintained, has no security vulnerabilities, and integrates cleanly with Django's settings system. For general Django projects not writing extensions, it adds little value.

Install

django-settings-holder on PyPI

pip

pip install django-settings-holder

uv

uv add django-settings-holder

poetry

poetry add django-settings-holder

Installing django-settings-holder

Before you install

Low friction: pure Python wheel with only Django as a runtime dependency. Actively maintained with recent releases; last commit 2026-08-10. Supports current Django versions (4.2, 5.0, 5.1, 5.2) and modern Python (3.10–3.13).

License in practice

MIT license is permissive; you can use this in commercial and proprietary projects with minimal restrictions, provided you include the license text.

Quickstart

pip install django-settings-holder

from django_settings_holder import SettingsHolder

class MyExtensionSettings(SettingsHolder):
    pass

settings = MyExtensionSettings()

Requires Django to be installed; intended for use within Django projects or extensions.

Verify before relying

  • Whether validators are run synchronously or asynchronously when settings are first accessed.
  • Whether dot-notation function imports work with all callable types or only specific ones.
  • Performance characteristics when reloading large numbers of settings via the signal handler.

Package facts

License MIT (permissive)
Python support supports the current Python release (<4,>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 1 — Django
Maintenance actively maintained — 474 days since the last release
Last repo commit
First released
Downloads 157,395/month — #10,758 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: django_settings_holder-0.3.0-py3-none-any.whl

Keywords: django, settings, holder

Environment :: Web EnvironmentFramework :: DjangoFramework :: Django :: 4.2Framework :: Django :: 5.0Framework :: Django :: 5.1Framework :: Django :: 5.2Intended Audience :: DevelopersProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13

Tags

django settings managementdjango extension configurationsettings holder attributesdjango settings validationdynamic settings reloadingdjango config containersettings dictionary wrapper
django-extensionconfiguration-management

More Application Frameworks packages

fastapi

FastAPI is a Python web framework for building…

permissive · top 100 on PyPI

annotated-doc

Provides a way to document function parameters,…

permissive · top 100 on PyPI

textual

Textual is a Python framework for building…

permissive · top 100 on PyPI

typer

Typer builds command-line applications from…

permissive · top 1,000 on PyPI

mcp

Build and connect to Model Context Protocol…

permissive · top 1,000 on PyPI

Werkzeug

Werkzeug is a WSGI utility library providing…

permissive · top 1,000 on PyPI

django-appconf

Provides a base class for Django apps to define…

permissive · top 5,000 on PyPI

django-constance

Django-constance lets you store and manage…

permissive · top 5,000 on PyPI

django-waffle

Django Waffle provides feature flags (toggles)…

permissive · top 5,000 on PyPI

django-localflavor

Provides country-specific form fields,…

permissive · top 5,000 on PyPI

django-admin-data-views

Adds custom data views to the Django admin…

permissive · top 15,000 on PyPI

PyStaticConfiguration

Loads, validates, and reads configuration from…

permissive · top 15,000 on PyPI

django-dirtyfields

Tracks which fields on a Django model instance…

permissive · top 15,000 on PyPI

django-signal-webhooks

Adds webhook support to Django models by…

permissive · top 15,000 on PyPI

django-upgrade

Automatically modernizes Django project code by…

permissive · top 15,000 on PyPI

djangorestframework-simplejwt

Provides JSON Web Token (JWT) authentication…

permissive · top 5,000 on PyPI