2015-02-05 5 views
3

Я работаю через официальный учебник по Django 1.7, найденный here. Все идет гладко, за исключением того, что django не может найти шаблоны для приложений. Он находит шаблоны, которые я помещал в workspace/mysite/templates, но не под шаблоны workspace/mysite/polls /.Django Can not Find App Templates

Рабочая область - это папка, которую у меня есть в моем домашнем каталоге, где я храню все свои веб-проекты.

Мой путь ~ рабочая область/MySite/

и структура проекта

`workspace 
    | 
    mysite 
    | 
    db.sqlite3 - manage.py - mysite - mysite_env - polls - templates` 

Я просто перечислить содержимое каждой папки для краткости:

  • db.sqlite3 - это файл
  • manage.py - это файл
  • mysite - это проектная складка r
  • mysite_env - это папка virtualenv
  • опросы - это папка приложения и содержит структуру каталогов файлов с шаблонами, которые не подбираются. Структура в открытом каталоге - это шаблоны/опросы/index.html
  • шаблоны - это шаблон шаблона проекта. Он подхватил Джанго

в моем MySITE/settings.py Я уточнял

`TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]` 

Я пытался добавить путь к папке опрашивает/шаблонов, но это не сработало.

опросы/views.py настройки для индекса:

`def index(request): 
    latest_question_list = Question.objects.order_by('-pub_date')[:5] 
    template = loader.get_template('/polls/index.html') 
    context = RequestContext(request, { 
     'latest_question_list': latest_question_list, 
    }) 
    return HttpResponse(template.render(context))` 

фактические опросы/шаблоны/опросы/index.html содержит:

`{% if latest_question_list % } 
    <ul> 
    {% for question in latest_question_list %} 
     <li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a>a></li> 
    {% endfor %} 
    </ul> 
{% else %} 
    <p>No Polls are available.</p> 
{% endif %}` 

и последний, но не менее, опросы/URLs .py содержит это регулярное выражение для сопоставления индекса для/опросов /:

`#ex: /polls/ 
    url(r'^$', views.index, name='index'),` 

Специфическая ошибка, я получаю:

`TemplateDoesNotExist at /polls/ 
/polls/index.html 
Request Method: GET 
Request URL: http://127.0.0.1:8000/polls/ 
Django Version: 1.7.4 
Exception Type: TemplateDoesNotExist 
Exception Value:  
/polls/index.html 
Exception Location: /home/jeremiah/workspace/mysite/mysite_env/lib/python3.4/site-packages/django/template/loader.py in find_template, line 136 
Python Executable: /home/jeremiah/workspace/mysite/mysite_env/bin/python 
Python Version: 3.4.0 
Python Path:  
['/home/jeremiah/workspace/mysite', 
'/home/jeremiah/workspace/mysite/mysite_env/lib/python3.4', 
'/home/jeremiah/workspace/mysite/mysite_env/lib/python3.4/plat-x86_64-linux-gnu', 
'/home/jeremiah/workspace/mysite/mysite_env/lib/python3.4/lib-dynload', 
'/usr/lib/python3.4', 
'/usr/lib/python3.4/plat-x86_64-linux-gnu', 
'/home/jeremiah/workspace/mysite/mysite_env/lib/python3.4/site-packages'] 
Server time: Wed, 4 Feb 2015 18:27:56 -0800` 

отслеживающий это дает это:

`nvironment: 


Request Method: GET 
Request URL: http://127.0.0.1:8000/polls/ 

Django Version: 1.7.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.auth.middleware.SessionAuthenticationMiddleware', 
'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: 
Using loader django.template.loaders.app_directories.Loader: 



Traceback: 
File "/home/jeremiah/workspace/mysite/mysite_env/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response 
    111.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "/home/jeremiah/workspace/mysite/polls/views.py" in index 
    9. template = loader.get_template('/polls/index.html') 
File "/home/jeremiah/workspace/mysite/mysite_env/lib/python3.4/site-packages/django/template/loader.py" in get_template 
    144.  template, origin = find_template(template_name, dirs) 
File "/home/jeremiah/workspace/mysite/mysite_env/lib/python3.4/site-packages/django/template/loader.py" in find_template 
    136.  raise TemplateDoesNotExist(name) 

Exception Type: TemplateDoesNotExist at /polls/ 
Exception Value: /polls/index.html` 

Может кто-то пожалуйста, помогите мне с этим? Я пытался выяснить, что случилось слишком долго. Любые идеи, основанные на принятой в настоящее время практике, приветствуются.

Спасибо.

ответ

5

Снимите с себя имя /. Это должно быть:

template = loader.get_template('polls/index.html') 
+0

OMG,/запястья! Вы хоть представляете, как долго я искал эту проблему? Ищите опечатки во всех файлах, проверяя мои пути python, пути django, пути sys.LOL, о, я действительно не могу в это поверить. Спасибо за помощь. – Longblog