How it works

maintenancemode works the same way as handling 404 or 500 error in
Django work. It adds a handler503 which you can override in your
main urls.py or you can add a 503.html to your templates
directory.

If user is logged in and staff member, the maintenance page is
not displayed.

If user’s IP is in INTERNAL_IPS, the maintenance page is
not displayed.

To override the default view which is used if the maintenance mode
is enabled you can simply define a handler503 variable in your
ROOT_URLCONF, similar to how you would customize other error handlers,
e.g. :

handler503='example.views.maintenance_mode'

Installation

Either checkout maintenancemode from GitHub, or install using pip :

pip install django-maintenancemode

Add maintenancemode to your INSTALLED_APPS :

INSTALLED_APPS=(...'maintenancemode',)

Add MaintenanceModeMiddleware to MIDDLEWARE_CLASSES, make sure it comes after AuthenticationMiddleware :