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 %}