Is there a list of default template variables in django?


I noticed that the django templates already have certain variables passed to it without you having to send any data. For instance, the ‘user’ variable can be called without sending any ‘user’ data to the template when rendering.

Is there somewhere where I can find a list of these ‘default variables’?

Asked By: Steven Rogers



The TEMPLATE_CONTEXT_PROCESSORS setting contains the following values by default (in Django 1.6):


The above is a list of context processors. A context processor is a function which can add more variables to the context which is passed to each template.

For example, the variable user is added by "django.contrib.auth.context_processors.auth".

Answered By: Simeon Visser

Django comes with a special Context class, django.template.RequestContext, that acts slightly differently than the normal django.template.Context. The first difference is that it takes an HttpRequest as its first argument. Go through the docs for more clearer Idea.

Answered By: Sarfraz Ahmad

Now in Django 4.1, the default context processors and template variables are listed at

Just for a quick reference:

Context Processor variables
django.contrib.auth.context_processors.auth user
django.template.context_processors.debug debug
django.template.context_processors.i18n LANGUAGES
django.template.context_processors.static STATIC_URL
django.template.context_processors.csrf csrf_token
django.template.context_processors.request request TIME_ZONE
django.contrib.messages.context_processors.messages messages
Answered By: x0lani