I have a project with 2 apps
project/
blog/
templates/
index.html
polls/
templates/
index.html
project/
templates
directory at the project root, and add it to your TEMPLATE_DIRS
setting.{% extends 'base.html' %}
For Django versions above 1.8 the upgrade doc suggests the vanilla settings (for most non-advanced django tangoers like me) be added to your settings.py:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [(os.path.join(BASE_DIR, 'my_Templates_Directory')),],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
# Insert your TEMPLATE_CONTEXT_PROCESSORS here or use this
# list if you haven't customized them:
'django.contrib.auth.context_processors.auth',
'django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages',
],
},
},
]
Both BACKEND and OPTIONS were required, otherwise I had errors relating to 'INVALID BACKEND' and 'django.contrib.auth.context_processors.auth' must be in TEMPLATES'.
In current Django (1.10) TEMPLATE_DIRS is deprecated, so:
templates
directory at the project root,In settings.py find TEMPLATES -> DIRS and add it like this:
TEMPLATES = [
{
...
'DIRS': [(os.path.join(BASE_DIR, 'templates')),],
...
}
Add a base.html to that directory.
{% extends 'base.html' %}