Question: I'm looking to do something like this non-working code in my Django template:

```
{% if os.environ.DJANGO_SETTINGS_MODULE == "settings.staging" %}

```

Is something like this possible? My workaround is creating a context processor to make the variable available across all templates, but wanted to know if there is a more direct way to achieve the same result.

Answer: 
Use `context_processor`, do as below and you should be able to access `os.environ['DJANGO_SETTINGS_MODULE']` as `SETTING_TYPE` in templates. Example you can use `{% if SETTING_TYPE == "settings.staging" %}`

> 
> project/context\_processors.py
> 
> 
> 

```
import os 

def export_vars(request):
    data = {}
    data['SETTING_TYPE'] = os.environ['DJANGO_SETTINGS_MODULE']
    return data

```

> 
> project/settings.py (your actual settings file)
> 
> 
> 

```
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                 ...
                  'project.context_processors.export_vars',
                 ...
            ]
         }
      }
   ]

```
Extending on [@vinay kumar](https://stackoverflow.com/users/3951511/vinay-kumar)'s comment, you can create a custom template filter in the following way:

> 
> application/template\_tags\_folder/template\_tags\_file.py
> 
> 
> 

```
from django.template.defaulttags import register
import os

@register.filter
def env(key):
    return os.environ.get(key, None)

```

And then in your template you can access it this way:

> 
> template.html
> 
> 
> 

```
{% if 'DJANGO_SETTINGS_MODULE'|env == 'app_name.staging_settings' %}

```

Finally I leave a [django docs reference](https://docs.djangoproject.com/en/3.1/howto/custom-template-tags/) and a [stackoverflow reference](https://stackoverflow.com/questions/6451304/django-simple-custom-template-tag-example) for creating custom template tags and filters in django.