2013-06-01 4 views
7

Я новичок в Django. Я использую pydev eclipse как IDE. Сначала я создал проект, затем приложение приветствовало этот проект. Я сделал папку с именем шаблоны в рамках проекта и сделать файл «home.html» и home.html содержитШаблон Не существует

<div> 
This is my first site 
</div> 

я изменить settings.py файл как

TEMPLATE_DIRS = ("Templates") 

INSTALLED_APPS = (
    ..........#all default items 
    'welcome', #the added one 
) 

views.py включает

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

urls.py содержит

from django.conf.urls import patterns, include, url 
from welcome.views import home 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    # Examples: 
    # url(r'^$', 'MajorProject.views.home', name='home'), 
    # url(r'^blog/', include('blog.urls')), 

    url(r'^admin/', include(admin.site.urls)), 
    url(r'^home/$', home), 

) 

затем я запускаю его как Джанго проект и открыть браузер и увидеть на локальном хосте: 8000/дома он показывает ошибку

TemplateDoesNotExist at /home/ 
home.html 
Request Method: GET 
Request URL: http://localhost:8000/home/ 
Django Version: 1.6 
Exception Type: TemplateDoesNotExist 
Exception Value:  
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\\MajorProject', 
'C:\\Python27\\lib\\site-packages\\distribute-0.6.35-py2.7.egg', 
'D:\\Bishnu\\BE\\4th year\\8th semester\\Major Project II\\Working\\Workspace\\MajorProject', 
'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: Sun, 2 Jun 2013 14:25:52 +0545 
+0

Try использовать абсолютный путь, а не родственник. – soon

ответ

2

Попробуйте установить каталог шаблонов на setting.py.
в

TEMPLATE_DIRS = (
        os.path.join(os.path.dirname(__file__),'templates'), 
) 
0

Каталог с шаблонами должен быть назван templates, не Templates (даже если на окнах может быть тоже самое). Также убедитесь, что у вас есть приложение в PYTHONPATH или правильную структуру каталогов вашего проекта и приложения, как:

project/ 
    project/ 
     settings.py 
     ... 
    welcome/ 
     templates/ 
      home.html 
     views.py 
     ... 
    manage.py 

Тогда вам не нужно менять, потому что TEMPLATE_DIRSapp_directories.Loader (по умолчанию включена) будет найти шаблоны в вашем заявление.

Также, если вы все еще хотите изменить TEMPLATE_DIRS, используйте абсолютные пути, но предпочтительным способом является app_directories.Loader.

3

Если вы используете Django 1.8+

Вы получите это предупреждение:

(1_8.W001) The standalone TEMPLATE_* settings were deprecated in Django 1.8 and the TEMPLATES dictionary takes precedence. You must put the values of the following settings into your default TEMPLATES dict: TEMPLATE_DIRS, TEMPLATE_DEBUG. 

Добавьте свой каталог шаблонов для настройки базы ШАБЛОНЫ по словарю DIRS

Нравится (а):

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [ 
      root("templates"), #### 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', 
      ], 
     }, 
    }, 
] 
+1

Сохранено мое время. благодаря –

1

в Django 1.9

in settings.py 
TEMPLATES = [ 
{ 
    'BACKEND': 'django.template.backends.django.DjangoTemplates', 
    'DIRS': [BASE_DIR+r'\templates'], 
    'APP_DIRS': True, 
    'OPTIONS': { 
     'context_processors': [ 
      ... 
     ], 
    }, 
}, 
] 
Смежные вопросы