Django Template Issue - PullRequest
       2

Django Template Issue

1 голос
/ 02 ноября 2010

Я продолжаю изучение этого , после добавления шаблонов и размещения шаблона в urls.py, я захожу на сайт и получаю страницу с незагруженным шаблоном.

Этомой каталог dir шаблона из settings.py:

TEMPLATE_DIRS = (
    "/home/django-projects/base/templates/",
)

иерархия базовой папки такая:

blog<dir>
dbs<dir>
__init__.py
manage.py
settings.py
templates<dir>
urls.py

urls.py выглядит так:

from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('base.blog.views',
    (r"", "main"),
    # Example:
    # (r'^base/', include('base.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    (r'^admin/', include(admin.site.urls)),
)

В шаблонах у меня есть папка с именем blog, и она содержит два html-файла из учебника.Я просто не уверен, какие настройки мне не хватает для отображения правильных шаблонов.Я буду рад опубликовать что-нибудь еще, что вам нужно будет увидеть.Я уверен, что это что-то тривиальное, я просто не могу понять, что это такое.Спасибо за вашу помощь.

РЕДАКТИРОВАТЬ Так что я поиграл с этим, и я понял, что не могу добраться до администратора.Поэтому я отцепил URL-адреса для части блога от основного.Urls.py на верхнем уровне выглядит следующим образом:

from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'blog/', include('blog.urls')),
    # Example:
    # (r'^base/', include('base.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    (r'^admin/', include(admin.site.urls)),
)

А в папке блога urls.py выглядит следующим образом: из django.conf.urls.defaults import *

urlpatterns = patterns('base.blog.views',
    (r'^$', 'main'),
)

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

TemplateDoesNotExist at /blog/
blog/list.html
Request Method: GET
Request URL:    http://192.168.1.124:9999/blog/
Django Version: 1.2.3
Exception Type: TemplateDoesNotExist
Exception Value:    
blog/list.html
Exception Location: /usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/template/loader.py in find_template, line 138
Python Executable:  /usr/bin/python
Python Version: 2.6.6
Python Path:    ['/home/kevin/django-projects/base', '/usr/local/lib/python2.6/dist-packages/setuptools-0.6c11-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/BeautifulSoup-3.1.0.1-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/python2.6/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.6/gtk-2.0']
Server time:    Tue, 2 Nov 2010 11:59:13 -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:

Ответы [ 2 ]

2 голосов
/ 02 ноября 2010

Должна ли последняя строка «основного» представления содержать «blog / list.html» вместо «list.html»?

Попробуйте заменить эту строку следующим:

return render_to_response("blog/list.html", dict(posts=posts, user=request.user))

Сделайте то же самое с представлением "post".

По сути, Django будет искать в каждом из настроенных каталогов шаблонов в settings.py, и если вы укажете "list.html", то лучшекорень из этих каталогов.Так как вы поместили «list.html» в подкаталог «blog», а не там, где вы сказали его искать, Django не может его найти.

0 голосов
/ 02 ноября 2010

Во-первых, у вас отсутствует ведущая / в каталоге шаблонов:

TEMPLATE_DIRS = (
    "/home/django-projects/base/templates/",
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...