Шаблоны не найдены Django - PullRequest
       16

Шаблоны не найдены Django

0 голосов
/ 11 февраля 2020

Я пробовал этот проект, упомянутый в «Легком Django_ Использование REST, Websockets & Backbone [Elman & Lavin 2014-11-13]», но в этом я застрял, когда мои шаблоны не найдены, может ли кто-нибудь помочь в этом

мои настройки


import os
import sys

from django.conf import settings
DEBUG = os.environ.get('DEBUG', 'on') == 'on'
SECRET_KEY = os.environ.get('SECRET_KEY',
 '%jv_4#hoaqwig2gu!eg#^ozptd*a@88u(aasv7z!7xt^5(*i&k')
ALLOWED_HOSTS = []
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
settings.configure(
 DEBUG=DEBUG,
 SECRET_KEY=SECRET_KEY,
 ALLOWED_HOSTS=ALLOWED_HOSTS,
 ROOT_URLCONF=__name__,
 MIDDLEWARE_CLASSES=(
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 ),
 INSTALLED_APPS=(
 'django.contrib.staticfiles',
 ),


 TEMPLATE_DIRS=(
 os.path.join(BASE_DIR, 'templates'),
 ),
 STATICFILES_DIRS=(
 os.path.join(BASE_DIR, 'static'),
 ),
 STATIC_URL='/static/',
)

мои просмотры

def index(request):
    example = reverse('placeholder', kwargs={'width': 50, 'height':50})
    context = {
    'example': request.build_absolute_uri(example)
    }
    return render(request, 'home.html', context)



#and urls are

urlpatterns = (
 url(r'^image/(?P<width>[0-9]+)x(?P<height>[0-9]+)/$', placeholder,
 name='placeholder'),
 url(r'^$', index, name='homepage'),
)

и мой порядок шаблонов в папке

 - foo    
 -     templates
 -          home.html
 -     static       
 -          site.css

нажмите для ошибки страница

Ответы [ 2 ]

0 голосов
/ 11 февраля 2020

В соответствии с вашими настройками,

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

Django ищет шаблон в <PROJECT_DIR>/templates. Тем не менее, похоже, что у вас есть шаблон в приложении foo, если я не ошибаюсь.

Итак, вы хотите сказать Django, чтобы он также просматривал ваши приложения. Пожалуйста, ознакомьтесь с документацией настроек шаблона . Вам может понадобиться APP_DIRS: True, чтобы шаблонный движок Django также просматривал ваши приложения.

Когда APP_DIRS имеет значение True, движки DjangoTemplates ищут шаблоны в подкаталоге шаблонов установленных приложений. Это имя c было сохранено для обратной совместимости.

Примечание. Добавьте foo в настройку INSTALLED_APPS.

0 голосов
/ 11 февраля 2020

Попробуйте обновить проект root и информацию каталога:

PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

TEMPLATE_DIRS = (os.path.join(PROJECT_ROOT, 'templates'),)
...