Using Waffle in templates¶
Waffle makes it easy to test flags, switches, and samples in templates to flip features on the front-end. It includes support for both Django’s built-in templates and for Jinja2.
Warning
Before using samples in templates, see the warning in the Sample chapter.
Django Templates¶
Load the waffle_tags template tags:
{% load waffle_tags %}
In Django templates, Waffle provides three new block types, flag,
switch, and sample, that function like if blocks. Each block
supports an optional else to be rendered if the flag, switch, or
sample in inactive.
Flags¶
{% flag "flag_name" %}
flag_name is active!
{% else %}
flag_name is inactive
{% endflag %}
Switches¶
{% switch "switch_name" %}
switch_name is active!
{% else %}
switch_name is inactive
{% endswitch %}
Samples¶
{% sample "sample_name" %}
sample_name is active!
{% else %}
sample_name is inactive
{% endsample %}
Jinja Templates¶
When used with Jinja2, Waffle provides a waffle object in the Jinja
template context that can be used with normal if statements. Because
these are normal if statements, you can use else or if not
as normal.
Flags¶
{% if waffle.flag('flag_name') %}
flag_name is active!
{% endif %}
Switches¶
{% if waffle.switch('switch_name') %}
switch_name is active!
{% endif %}
Samples¶
{% if waffle.sample('sample_name') %}
sample_name is active!
{% endif %}