.. _starting-requirements: ============ Requirements ============ Waffle depends only on Django (except for :ref:`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`_. .. _auth system: https://docs.djangoproject.com/en/dev/topics/auth/ .. _custom user model: https://docs.djangoproject.com/en/dev/topics/auth/customizing/#specifying-a-custom-user-model .. _PermissionsMixin: https://docs.djangoproject.com/en/dev/topics/auth/customizing/#custom-users-and-permissions .. _its requirements: https://docs.djangoproject.com/en/dev/topics/auth/#installation Templates ========= 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`_:: TEMPLATE_CONTEXT_PROCESSORS = ( # ... 'django.template.context_processors.request', # ... .. _template context processor: https://docs.djangoproject.com/en/dev/ref/settings/#template-context-processors