Waffle depends only on Django (except for running Waffle’s tests) but does require certain Django features.

User Models

Waffle requires Django’s auth system, in particular it requires both a user model and Django’s groups. If you’re using a custom user model, this can be accomplished by including Django’s PermissionsMixin, e.g.:

from django.contrib.auth import models

class MyUser(models.AbstractBaseUser, models.PermissionsMixin):

And of django.contrib.auth must be in INSTALLED_APPS, along with its requirements.


Waffle provides template tags to check flags directly in templates. Using these requires the request object in the template context, which can be easily added with the request template context processor:

    # ...
    # ...