2016-04-03 2 views
1

Я пытаюсь создать базовое приложение Django с целевой страницей. Я сделал следующее:Не удается получить доступ к целевой странице

python manage.py startapp landing 

Затем я добавил landing к INSTALLED_APPS и url(r'^$', 'landing.views.index') к urlpatterns.

Внутри landing/view.py, я добавил:

from django.shortcuts import render 
from django.shortcuts import render_to_response 
from django.template import RequestContext 

def index(request): 
    return render_to_response('landing/index.html', context_instance=RequestContext(request)) 

Где landing/index.html моя запрашиваемая страница посадки.

При попытке открыть целевую страницу, я получаю ошибку:

TemplateDoesNotExist at/
landing/index.html 

Что я делаю неправильно?

Настройки из settings.py являются следующие:

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'landing', 
] 

MIDDLEWARE_CLASSES = [ 
    'django.middleware.security.SecurityMiddleware', 
    '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', 
] 

ROOT_URLCONF = 'learningSuite.urls' 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 

WSGI_APPLICATION = 'learningSuite.wsgi.application' 


# Database 
# https://docs.djangoproject.com/en/1.9/ref/settings/#databases 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
    } 
} 


# Password validation 
# https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators 

AUTH_PASSWORD_VALIDATORS = [ 
    { 
     'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 
    }, 
] 
+0

Где: index.html файл? –

+0

Внутри каталога 'landing'. – octavian

+1

Извините, вам нужно быть более конкретным. Непосредственно внутри той же целевой директории, что и модель и представления? Внутри другой директории посадки внутри/шаблоны? Пожалуйста, покажите фактическую структуру каталогов. –

ответ

1

Вы должны установить APP_DIRS в True, чтобы Django найти шаблоны в templates каталоге приложений проекта.

И у вас должен быть index.html, расположенный в каталоге myProject/landing/templates/.

+0

Устанавливается как 'True'. – octavian

+0

@octavian не могли бы вы разместить все настройки, связанные с шаблоном? Благодарю. – alecxe

+0

Я отредактировал мой пост – octavian

2

Шаблоны необходимо вводить в отдельный каталог шаблонов. Либо все они должны быть в каталоге, специально названном в настройке DIRS, или если APP_DIRS имеет значение True, то они могут находиться внутри <app_name>/templates.

+0

Я переместил 'index.html' внутри' myProject/landing/templates/'. Нет ли другой проблемы с кодом, который я опубликовал? Я нашел его онлайн, и это может быть из старой версии Django. – octavian

Смежные вопросы