django-constance
Django live settings with pluggable backends, including Redis.
What it is and what it does
Django-constance is a Django app that moves application settings from static configuration files into dynamic, runtime-modifiable storage. Instead of hardcoding values in settings.py or environment variables, you define settings once and then change them through the Django admin interface or programmatically without restarting your application. It supports multiple backends: a built-in Django model backend that stores settings in the database, and Redis for higher-performance distributed scenarios.
The package integrates seamlessly with Django's admin interface, letting non-technical users or developers adjust application behavior on the fly. It's useful for feature flags, rate limits, feature toggles, or any configuration that benefits from runtime adjustment. With no external runtime dependencies and support for Django 4.2 through 5.2 on Python 3.8–3.13, it fits into existing Django projects with minimal friction.
Use it for:
- Enable or disable features in production without redeploying by storing feature flags in django-constance and checking them at runtime.
- Adjust application parameters like rate limits, timeouts, or batch sizes through the Django admin without code changes.
- Store user-configurable settings (e.g., email templates, notification thresholds) in a database backend for non-developers to manage.
- Share configuration across multiple application instances using Redis backend for consistency.
- A/B test or gradually roll out changes by toggling settings on and off for different user cohorts.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Django-constance lets you store and manage application settings dynamically at runtime using pluggable backends like Redis or Django's database, with built-in Django admin integration for easy updates without redeployment.
Yes. Django-constance is actively maintained, has no external dependencies, carries a permissive BSD license, and solves a common Django problem cleanly. Use it when you need runtime-adjustable settings in a Django project. The Django model backend requires no extra infrastructure; add Redis only if you need distributed consistency across multiple app instances.
Install
django-constance on PyPI
pip
pip install django-constanceuv
uv add django-constancepoetry
poetry add django-constanceInstalling django-constance
Before you install
Low install friction; no runtime dependencies. Actively maintained with recent commits and 1852 repository stars. Supports modern Django versions (4.2, 5.0, 5.1, 5.2) and Python 3.8–3.13.
License in practice
BSD license is permissive, allowing use in commercial and proprietary projects with minimal restrictions.
Quickstart
pip install django-constance
# In settings.py, add 'constance' to INSTALLED_APPS
# Then use:
from constance import config
value = config.MY_SETTING
Requires Django to be installed and configured; the package itself is a Django app and cannot function standalone.
Verify before relying
- Whether Redis backend requires additional setup or if Django model backend is sufficient for most use cases.
- Performance characteristics when managing large numbers of settings across distributed systems.
Package facts
| License | BSD (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 152 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,217,790/month — #4,205 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django_constance-4.3.5-py3-none-any.whl
Keywords: django, libraries, redis, settings
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
django-dynamic-preferencesStores and retrieves application settings…
permissive · top 15,000 on PyPI
django-environLoads and parses environment variables from…
permissive · top 5,000 on PyPI
django-settings-holderProvides a settings container for Django…
permissive · top 15,000 on PyPI
persisting-theoryPersisting-theory provides a registry system…
permissive · top 15,000 on PyPI
django-hostsRoutes HTTP requests to different Django URL…
permissive · top 15,000 on PyPI
django-appconfProvides a base class for Django apps to define…
permissive · top 5,000 on PyPI
django-extensionsProvides a collection of custom management…
permissive · top 5,000 on PyPI
django-redisProvides a Redis cache and session backend for…
permissive · top 5,000 on PyPI
django-storagesdjango-storages provides pluggable storage…
permissive · top 5,000 on PyPI
django-unfoldReplaces Django's default admin interface with…
permissive · top 5,000 on PyPI