python – / poll /的TemplateDoesNotExist
我一直在尝试Django tutorial
Django Tutorial Page 3并遇到了这个错误
我假设问题是我的代码指向模板文件index.html.这是index.html的文件结构:mysite / polls / templates / polls. settings.py TEMPLATE_DIRS = [os.path.join(BASE_DIR,'templates')] 观点. PY from django.shortcuts import render from django.http import HttpResponse from django.template import RequestContext,loader from polls.models import Poll # Create your views here. #def index(request): #return HttpResponse("Hello,world. You are at the poll index.") def index(request): latest_poll_list = Poll.objects.order_by('-pub_date')[:5] template = loader.get_template('polls/index.html') context = RequestContext(request,{ 'latest_poll_list': latest_poll_list,}) return HttpResponse(template.render(context)) def detail(request,poll_id): return HttpResponse("You're looking at the results of the poll %s." % poll_id) def results(request,poll_id): return HttpResponse("You're looking at the results of poll %s." % poll_id) def vote(request,poll_id): return HttpResponse("You're voting on poll %s." % poll_id) 有人可以调查它并帮助我解决这个错误.任何帮助,将不胜感激. Request Method: GET Request URL: http://localhost:8000/polls/ Django Version: 1.6.4 Python Version: 3.4.0 Installed Applications: ('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','polls') Installed Middleware: ('django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware') Template Loader Error: Django tried loading these templates,in this order: Using loader django.template.loaders.filesystem.Loader: C:Python34mysitetemplatespollsindex.html (File does not exist) Using loader django.template.loaders.app_directories.Loader: C:Python34libsite-packagesdjangocontribadmintemplatespollsindex.html (File does not exist) C:Python34libsite-packagesdjangocontribauthtemplatespollsindex.html (File does not exist) C:Python34mysitepollstemplatespollsindex.html (File does not exist) Traceback: File "C:Python34libsite-packagesdjangocorehandlersbase.py" in get_response 114. response = wrapped_callback(request,*callback_args,**callback_kwargs) File "C:Python34mysitepollsviews.py" in index 14. template = loader.get_template('polls/index.html') File "C:Python34libsite-packagesdjangotemplateloader.py" in get_template 138. template,origin = find_template(template_name) File "C:Python34libsite-packagesdjangotemplateloader.py" in find_template 131. raise TemplateDoesNotExist(name) Exception Type: TemplateDoesNotExist at /polls/ Exception Value: polls/index.html` 如果我错过任何可以提供更清晰画面的信息,请告诉我.提前致谢. Settings.py“”“ Django settings for mysite project. For more information on this file,see https://docs.djangoproject.com/en/1.6/topics/settings/ For the full list of settings and their values,see https://docs.djangoproject.com/en/1.6/ref/settings/ """ # Build paths inside the project like this: os.path.join(BASE_DIR,...) import os BASE_DIR = os.path.dirname(os.path.dirname(__file__)) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/1.6/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'ma_x5+pnvp$o7#5g#lb)0g$sa5ln%k(z#wcahwib4dngbbe9^=' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True TEMPLATE_DEBUG = True ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = ( 'django.contrib.admin','polls',) MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',) ROOT_URLCONF = 'mysite.urls' WSGI_APPLICATION = 'mysite.wsgi.application' # Database # https://docs.djangoproject.com/en/1.6/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR,'C://Python34/mysite/db.sqlite3'),} } # Internationalization # https://docs.djangoproject.com/en/1.6/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True #TEMPLATE_DIRS = [os.path.join(BASE_DIR,'templates')] # Static files (CSS,JavaScript,Images) # https://docs.djangoproject.com/en/1.6/howto/static-files/ STATIC_URL = '/static/' 解决方法
尝试将模板文件夹放在项目根文件夹中:
mysite的/模板/调查/ index.html的 说明 你的模板目录是 TEMPLATE_DIRS = [os.path.join(BASE_DIR,’templates’)] 它只包含一个目录:/ path / to / your / project / templates 并且您的index.html位于/ path / to / your / project / polls / templates中 更新 正如你所说,它不适用于存储在mysite / templates / polls / index.html中的模板,让我们试试这种方式: 去mysite跑 python manage.py shell 使用mysite作为上下文运行交互式解释器.然后运行: from settings import TEMPLATE_DIRS print TEMPLATE_DIRS 它会输出类似的东西 ('/var/www/mithril/templates/','/home/dmitry/proj/mithril/templates/') Django使用此目录来查找模板.因此,您应该将目录轮询/放在TEMPLATE_DIRS文件夹中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |