Feature flags allow you to toggle functionality based on configurable conditions.
Wagtail-Flags adds a Wagtail admin UI and Wagtail Site-based condition on top of Django-Flags. For a more complete overview of feature flags and how to use them, please see the Django-Flags documentation.
- Dependencies
- Installation
- Usage
- Extended conditions
- Getting help
- Getting involved
- Licensing
- Credits and references
- Python 2.7+, 3.6+
- Django 1.11+, 2.0+
- Wagtail 1.13+, 2.0+
- Django-Flags 4.2+
- Install Django-Flags and Wagtail-Flags:
pip install django-flags
pip install wagtail-flags
- Add
flags
andwagtailflags
as installed apps in your Djangosettings.py
:
INSTALLED_APPS = (
...
'flags',
'wagtailflags',
...
)
Please see the Django-Flags documentation for the most current information about defining and checking feature flags.
First, define the flag in Django settings.py
:
FLAGS = {
'MY_FLAG': []
}
Then use the flag in a Django template (mytemplate.html
):
{% load feature_flags %}
{% flag_enabled 'MY_FLAG' as my_flag %}
{% if my_flag %}
<div class="flagged-banner">
I’m the result of a feature flag.
</div>
{% endif %}
Next, configure a URL for that template (urls.py
):
from django.urls import path
from django.views.generic import TemplateView
urlpatterns = [
path(r'mypage/', TemplateView.as_view(template_name='mytemplate.html')),
]
Finally, add conditions for the flag in the Wagtail admin under "Settings", "Flags", "MY_FLAG":
Wagtail-Flags adds the following conditions to Django-Flags:
Allows a flag to be enabled for a Wagtail site that matches the hostname and port in the condition value.
FLAGS = {
'MY_FLAG': [
{'condition': 'site', 'value': 'staging.mysite.com'}
],
}
Please add issues to the issue tracker.
General instructions on how to contribute can be found in CONTRIBUTING.
- Forked from cfgov-refresh