django-waffle
A feature flipper for Django.
What it is and what it does
Django Waffle is a feature flag library for Django that lets you control feature availability at runtime without code changes. You define conditions (user-based, percentage-based, date-based, etc.) for when a flag should be active, then check those flags in your views, templates, or code to conditionally enable or disable functionality. It integrates directly into Django's admin interface and database, making it straightforward to toggle features on and off for testing, gradual rollouts, or A/B experiments.
The package is production-stable, actively maintained, and widely used (1.9M+ monthly downloads). It requires only Django as a runtime dependency and supports current Python versions (3.9+) and recent Django versions (4.2 through 5.2). With no known security vulnerabilities and a permissive BSD license, it's a low-friction addition to any Django project.
Use it for:
- Gradually roll out new features to a percentage of users without redeploying the application.
- Run A/B tests by enabling features for specific user groups or cohorts.
- Disable problematic features in production quickly without a code release.
- Test experimental functionality in staging or production with feature flags before full release.
- Manage feature availability across multiple environments with different flag configurations.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Django Waffle provides feature flags (toggles) for Django applications, allowing you to define conditions for when features should be active and control their rollout without redeploying code.
Yes. Django Waffle is a mature, well-maintained feature flag solution with low install friction, no security vulnerabilities, and a permissive license. It's the standard choice for Django projects needing runtime feature control. Install it if you need to decouple feature rollout from deployment.
Install
django-waffle on PyPI
pip
pip install django-waffleuv
uv add django-wafflepoetry
poetry add django-waffleInstalling django-waffle
Before you install
Low install friction with a single Django dependency. The project is actively maintained with recent commits, 1243 GitHub stars, and a long history since 2011, indicating stable, well-established code.
License in practice
BSD license is permissive, allowing commercial and private use with minimal restrictions—no compliance burden for most projects.
Quickstart
pip install django-waffle
from waffle.decorators import flag_is_active
if flag_is_active(request, 'my_feature'):
# Feature is enabled for this request
Requires Django to be installed and configured; feature flags must be defined in Django admin or via code.
Verify before relying
- Whether the package supports real-time flag updates without restarting the application.
- How flag evaluation performance scales with a large number of flags in production.
- Whether there are built-in integrations with external flag management services.
Package facts
| License | BSD (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — django |
| Maintenance | actively maintained — 428 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,966,503/month — #3,404 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django_waffle-5.0.0-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
django-flagsDjango-Flags provides a feature flag system for…
permissive · top 15,000 on PyPI
edx-togglesProvides Django-integrated feature toggle…
agpl · top 15,000 on PyPI
FeatureManagementEnables runtime control of application features…
permissive · top 15,000 on PyPI
django-settings-holderProvides a settings container for Django…
permissive · top 15,000 on PyPI
django-signal-webhooksAdds webhook support to Django models by…
permissive · top 15,000 on PyPI
django-lifecycleAdds declarative lifecycle hooks to Django…
permissive · top 15,000 on PyPI
django-viewflowViewflow is a low-code library for building…
agpl · top 15,000 on PyPI
django-taggitAdds simple tagging functionality to Django…
permissive · top 5,000 on PyPI
django-dirtyfieldsTracks which fields on a Django model instance…
permissive · top 15,000 on PyPI
django-unfoldReplaces Django's default admin interface with…
permissive · top 5,000 on PyPI