django templatedoesnotexist current_date

时间:2012-07-24 01:51:40

标签: django

我正在阅读Django书。我在第4章的中间。我无法渲染current_datetime.html模板视图。我究竟做错了什么?看起来模板加载器找不到正确的目录。 http://www.djangobook.com/en/2.0/chapter04/

我在项目文件夹中创建了我的模板目录,在目录中创建了current_datetime.html。

Setting.py
import os.path

TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__), 'templates').replace('\\','/'),
    # I've also tried: # '/Users/macuser/Python_Projects/django_test1/templates',
)

views.py
from django.shortcuts import render_to_response
import datetime

def current_datetime(request):
    now = datetime.datetime.now()
    return render_to_response('current_datetime.html', {'current_date': now})

urls.py
from django.conf.urls import patterns, include, url
from django_test1.views import hello, my_homepage_view, current_datetime, hours_ahead


urlpatterns = patterns('',
    (r'^$', my_homepage_view),
    (r'^hello/$', hello),
    (r'^time/$', current_datetime),
    (r'^time/plus/(\d{1,2})/$', hours_ahead),)

错误:

TemplateDoesNotExist at /time/
current_datetime.html
Request Method: GET
Request URL:
Django Version: 1.4
Exception Type: TemplateDoesNotExist
Exception Value:    
current_datetime.html
Exception Location: /Library/Python/2.7/site-packages/django/template/loader.py in find_template, line 138
Python Executable:  /usr/bin/python
Python Version: 2.7.1
Python Path:    
['/Users/macuser/Python_Projects/django_test1',
 '/Library/Python/2.7/site-packages/distribute-0.6.27-py2.7.egg',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC',
 '/Library/Python/2.7/site-packages']
Server time:    Mon, 23 Jul 2012 20:40:35 -0500
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:
/Library/Python/2.7/site-packages/django/contrib/auth/templates/current_datetime.html (File does not exist)

2 个答案:

答案 0 :(得分:0)

您没有检查render_to_Response格式 https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#render-to-response

通过它,您需要将context_instance = RequestContext(request)添加到响应

答案 1 :(得分:0)

这是一个愚蠢的错误。我没有创建一个真正的应用程序:python manage.py startapp“appName”。我在设置文件中设置了“assert False”,并意识到django甚至没有使用我的settings.py文件。