2012-01-12 190 views
1

出於某種原因,我創建的webapp無法找到模板。我也嘗試將html文件放置到多個不同的位置,但它仍然無法找到它。截至目前,我已將我的模板總監放在以下位置C:\xampp\htdocs\django_proj\templates\。別人是否知道問題可能是什麼。Django,無法找到模板

我在這個django項目中有另一個webapp。模型和視圖看起來幾乎相同,但webapp可以找到模板。

/webapp/models.py

from django.db import models 

class Profile(models.Model): 
    name = models.CharField(max_length=255) 
    age = models.IntegerField() 
    added_at = models.DateTimeField(auto_now_add=True) 

/webapp/views.py

from django.views.generic.list_detail import object_list 

from models import Profile 

def profile_list(request): 
    return object_list(request, 
     queryset=Profile.objects.all(), 
     template_name='/webapp/list.html', 
     template_object_name='profiles') 

/webapp/urls.py

from django.conf.urls.defaults import * 

import views 

urlpatterns = patterns('', 

    url(r'^list/$', views.profile_list, name='profile_list'), 
) 

/urls.py

from django.conf.urls import * 

    urlpatterns = patterns('', 

     (r'^webapp/', include('webapp.urls')), 
    ) 

/templates/webapp/list.html

<html> 
    <body> 
    Test 
    </body> 
</html> 

錯誤消息

TemplateDoesNotExist at /webapp/list/ 

/webapp/list.html 

Request Method:  GET 
Request URL: http://localhost:8000/webapp/list/ 
Django Version:  1.4 pre-alpha 
Exception Type:  TemplateDoesNotExist 
Exception Value:  

/webapp/list.html 

Exception Location:  c:\tools\python27\lib\site-packages\django\template\loader.py in find_template, line 138 
Python Executable: c:\tools\python27\python.exe 
Python Version:  2.7.2 
Python Path:  

['C:\\xampp\\htdocs\\webnotes', 
'c:\\tools\\python27\\lib\\site-packages\\pip-1.0.2-py2.7.egg', 
'C:\\Windows\\system32\\python27.zip', 
'c:\\tools\\python27\\DLLs', 
'c:\\tools\\python27\\lib', 
'c:\\tools\\python27\\lib\\plat-win', 
'c:\\tools\\python27\\lib\\lib-tk', 
'c:\\tools\\python27', 
'c:\\tools\\python27\\lib\\site-packages'] 

Server time: Thu, 12 Jan 2012 19:33:48 +0100 
Template-loader postmortem 

Django tried loading these templates, in this order: 

    Using loader django.template.loaders.filesystem.Loader: 
    Using loader django.template.loaders.app_directories.Loader: 
+0

你得到一個錯誤頁的「模板未找到錯誤」?你能發佈錯誤信息嗎?它通常包含Django尋找模板的路徑列表。此外,任何相關的Django設置都會有所幫助。 – 2012-01-12 18:31:38

+0

當然我現在要添加它 – starcorn 2012-01-12 18:34:10

回答

5

您的模板名稱包含aboslute路徑/webapp/list.html。嘗試使其成爲相對路徑webapp/list.html,以便os.path.join(.)按預期處理路徑級聯。

試試這個:

def profile_list(request): 
    return object_list(request, 
     queryset=Profile.objects.all(), 
     template_name='webapp/list.html', # removed slash here. 
     template_object_name='profiles') 
+0

+1也打我吧:-) – 2012-01-12 18:44:33

+0

啊,這麼小的一件事。謝謝救了我的一天:) – starcorn 2012-01-12 18:46:18

0

嘗試改變/web應用程序的URL模式/ urls.py from:

url(r'^list/$', views.profile_list, name='profile_list'), 

url(r'^webapp/list/$', views.profile_list, name='profile_list'), 
+0

但是我已經在'/ urls.py'中添加了該部分,因此將它添加到'/ webapp/urls.py'中會導致它找不到該url。 – starcorn 2012-01-12 18:42:06