Is there a list of default template variables in django?

1.5k views Asked by At

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'?

3

There are 3 answers

2
Simeon Visser On BEST ANSWER

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

"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages"

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".

0
Sarfraz Ahmad On

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.

https://docs.djangoproject.com/en/1.6/ref/templates/api/#subclassing-context-requestcontext

0
x0lani On

Now in Django 4.1, the default context processors and template variables are listed at https://docs.djangoproject.com/en/4.1/ref/templates/api/#context-processors

Just for a quick reference:

Context Processor variables
django.contrib.auth.context_processors.auth user
perms
django.template.context_processors.debug debug
sql_queries
django.template.context_processors.i18n LANGUAGES
LANGUAGE_BIDI
LANGUAGE_CODE
django.template.context_processors.media MEDIA_URL
django.template.context_processors.static STATIC_URL
django.template.context_processors.csrf csrf_token
django.template.context_processors.request request
django.template.context_processors.tz TIME_ZONE
django.contrib.messages.context_processors.messages messages
DEFAULT_MESSAGE_LEVELS