--- id: django-settings-holder version: "0.3.0" license: MIT license_treatment: permissive maintenance: active --- # django-settings-holder — Object that allows settings to be accessed with attributes. License: permissive · Maintenance: active · Downloads: 157.4K/mo ## 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 above — 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 pip install django-settings-holder uv add django-settings-holder 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_current - Install friction: low - Maintenance: active - Downloads: 157.4K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags django settings management, django extension configuration, settings holder attributes, django settings validation, dynamic settings reloading, django config container, settings dictionary wrapper, django-extension, configuration-management [View on SkillFed](https://skillfed.io/packages/django-settings-holder) · [View on PyPI](https://pypi.org/project/django-settings-holder/)