Visually distinguish environments in Django Admin. Based on great advice from post: 5 ways to make Django Admin safer by hakibenita.
- Python 2.7, 3.4+
- Django 1.9+
Install django-admin-env-notice::
pip install django-admin-env-notice
Add it to your INSTALLED_APPS
before django.contrib.admin
:
INSTALLED_APPS = (
...
'django_admin_env_notice',
'django.contrib.admin',
...
)
Add context processor:
TEMPLATES = [
{
...
"OPTIONS": {
"context_processors": [
...
"django_admin_env_notice.context_processors.from_settings",
],
},
},
]
Set label and color for current environment:
ENVIRONMENT_NAME = "Production server"
ENVIRONMENT_COLOR = "#FF2222"
Override django admin selector if necessary (default: body), e.g: grappelli:
ENVIRONMENT_ADMIN_SELECTOR = "grp-header"
Optionally, set the environment banner to float over instead of being fixed to the top:
ENVIRONMENT_FLOAT = True
You can also set the text color (default: white) by setting:
ENVIRONMENT_TEXT_COLOR = "#00FF00"
You can stop showing the banner to unauthenticated users by setting (default: True
):
ENVIRONMENT_SHOW_TO_UNAUTHENTICATED = False
Does the code actually work?
source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ tox
Tools used in rendering this package: