Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Template does not exist

Tags:

I am new to Django. I made a folder named templates in my project and "base.html" inside it, it works fine. But when I make new folder inside templates welcome and then "home.html" and I write some lines of code in my views.py file as

from django.shortcuts import render_to_response  def hello(request):     return render_to_response('welcome/home.html') 

and settings.py includes

# Django settings for Telecom project.  DEBUG = True TEMPLATE_DEBUG = DEBUG  import os #BASE_DIR = os.path.dirname(os.path.dirname(__file__))  PROJECT_DIR = os.path.dirname(__file__)  ADMINS = (     # ('Your Name', '[email protected]'), )   MANAGERS = ADMINS  DATABASES = {     'default': {         'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.         'NAME': 'mysql',                      # Or path to database file if using sqlite3.         'USER': 'root',                      # Not used with sqlite3.         'PASSWORD': '',                  # Not used with sqlite3.         'HOST': '127.0.0.1',                      # Set to empty string for localhost. Not used with sqlite3.         'PORT': '3306',                      # Set to empty string for default. Not used with sqlite3.     } }  # Hosts/domain names that are valid for this site; required if DEBUG is False # See https://docs.djangoproject.com/en/{{ docs_version }}/ref/settings/#allowed-hosts ALLOWED_HOSTS = []  # Local time zone for this installation. Choices can be found here: # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name # although not all choices may be available on all operating systems. # On Unix systems, a value of None will cause Django to use the same # timezone as the operating system. # If running in a Windows environment this must be set to the same as your # system time zone. TIME_ZONE = 'America/Chicago'  # Language code for this installation. All choices can be found here: # http://www.i18nguy.com/unicode/language-identifiers.html LANGUAGE_CODE = 'UTC'  SITE_ID = 1  # If you set this to False, Django will make some optimizations so as not # to load the internationalization machinery. USE_I18N = True  # If you set this to False, Django will not format dates, numbers and # calendars according to the current locale USE_L10N = True  # Absolute filesystem path to the directory that will hold user-uploaded files. # Example: "/home/media/media.lawrence.com/media/" MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media')   # URL that handles the media served from MEDIA_ROOT. Make sure to use a # trailing slash. # Examples: "http://media.lawrence.com/media/", "http://example.com/media/" MEDIA_URL = 'http://localhost:8000/media/admin/'  # Absolute path to the directory static files should be collected to. # Don't put anything in this directory yourself; store your static files # in apps' "static/" subdirectories and in STATICFILES_DIRS. # Example: "/home/media/media.lawrence.com/static/" STATIC_ROOT = ''  # URL prefix for static files. # Example: "http://media.lawrence.com/static/" STATIC_URL = '/static/'  # URL prefix for admin static files -- CSS, JavaScript and images. # Make sure to use a trailing slash. # Examples: "http://foo.com/static/admin/", "/static/admin/". ADMIN_MEDIA_PREFIX = '/static/admin/'  # Additional locations of static files STATICFILES_DIRS = (     # Put strings here, like "/home/html/static" or "C:/www/django/static".     # Always use forward slashes, even on Windows.     # Don't forget to use absolute paths, not relative paths. )  # List of finder classes that know how to find static files in # various locations. STATICFILES_FINDERS = (     'django.contrib.staticfiles.finders.FileSystemFinder',     'django.contrib.staticfiles.finders.AppDirectoriesFinder', #    'django.contrib.staticfiles.finders.DefaultStorageFinder', )  # Make this unique, and don't share it with anybody. SECRET_KEY = 'b9_hyqe*b&ra_&wlm5a9xas_ag#5mjv-dy=to%hdk_u-#xvn*l'  # List of callables that know how to import templates from various sources. TEMPLATE_LOADERS = (     'django.template.loaders.filesystem.Loader',     'django.template.loaders.app_directories.Loader', #    'django.template.loaders.eggs.Loader', )  TEMPLATE_DIRS = (                          os.path.join(PROJECT_DIR, 'templates'),  )  print PROJECT_DIR MIDDLEWARE_CLASSES = (     'django.middleware.common.CommonMiddleware',     'django.contrib.sessions.middleware.SessionMiddleware',     'django.middleware.csrf.CsrfViewMiddleware',     'django.contrib.auth.middleware.AuthenticationMiddleware',     'django.contrib.messages.middleware.MessageMiddleware', )  ROOT_URLCONF = 'Telecom.urls'  INSTALLED_APPS = (     'django.contrib.auth',     'django.contrib.contenttypes',     'django.contrib.sessions',     'django.contrib.sites',     'django.contrib.messages',     'django.contrib.staticfiles',     # Uncomment the next line to enable the admin:     'django.contrib.admin',     # Uncomment the next line to enable admin documentation:     'django.contrib.admindocs',     'welcome', )  # A sample logging configuration. The only tangible logging # performed by this configuration is to send an email to # the site admins on every HTTP 500 error. # See http://docs.djangoproject.com/en/dev/topics/logging for # more details on how to customize your logging configuration. LOGGING = {     'version': 1,     'disable_existing_loggers': False,     'handlers': {         'mail_admins': {             'level': 'ERROR',             'class': 'django.utils.log.AdminEmailHandler'         }     },     'loggers': {         'django.request': {             'handlers': ['mail_admins'],             'level': 'ERROR',             'propagate': True,         },     } } 

but the error shows

TemplateDoesNotExist at /hello/ /welcome/home.html Request Method: GET Request URL:    http://localhost:8000/hello/ Django Version: 1.6 Exception Type: TemplateDoesNotExist Exception Value:     /welcome/home.html Exception Location: C:\Python27\django\template\loader.py in find_template, line 131 Python Executable:  C:\Python27\python.exe Python Version: 2.7.2 Python Path:     ['D:\\Bishnu\\BE\\4th year\\8th semester\\Major Project II\\Working\\Workspace\\Telecom',  'C:\\Python27\\lib\\site-packages\\distribute-0.6.35-py2.7.egg',  'D:\\Bishnu\\BE\\4th year\\8th semester\\Major Project II\\Working\\Workspace\\Telecom',  'C:\\Python27\\DLLs',  'C:\\Python27\\lib',  'C:\\Python27\\lib\\plat-win',  'C:\\Python27\\lib\\lib-tk',  'C:\\Python27',  'C:\\Python27\\lib\\site-packages',  'C:\\Python27\\lib\\site-packages\\wx-2.8-msw-unicode',  'C:\\Windows\\SYSTEM32\\python27.zip'] Server time:    Tue, 18 Jun 2013 17:09:07 +0545 

How can I solve it ?

like image 208
Bishnu Bhattarai Avatar asked Jun 18 '13 11:06

Bishnu Bhattarai


People also ask

How do you fix template does not exist?

Django TemplateDoesNotExist error means simply that the framework can't find the template file. To use the template-loading API, you'll need to tell the framework where you store your templates. The place to do this is in your settings file ( settings.py ) by TEMPLATE_DIRS setting.

What does {{ NAME }} this mean in Django templates?

What does {{ name }} this mean in Django Templates? {{ name }} will be the output. It will be displayed as name in HTML. The name will be replaced with values of Python variable.


1 Answers

For Django 1.8 or above you need to open the settings.py file and add the template path in the DIRS key of TEMPLATES list as a list of string.

TEMPLATES = [     {         'BACKEND': 'django.template.backends.django.DjangoTemplates',         'DIRS': ['Secondjango/Secondjango/templates/welcome'],  # <<<<<<<<Here         'APP_DIRS': True,         'OPTIONS': {             'context_processors': [                 'django.template.context_processors.debug',                 'django.template.context_processors.request',                 'django.contrib.auth.context_processors.auth',                 'django.contrib.messages.context_processors.messages',             ],         },     }, ] 

Thanks.

like image 118
Soumendra Avatar answered Nov 03 '22 18:11

Soumendra