2016-10-29 5 views
0

Насколько я видел в документации Django, чтобы показать пользовательскую страницу 404, вам нужно всего лишь добавить 404.html в каталог корневых шаблонов.Django 1.10 404.html template не найден

Так моя структура проекта:

django_project 
|_ config 
| |_ settings.py 
| |_ urls.py 
| 
|_ templates 
    |_ base.html 
    |_ index.html 
    |_ 404.html 

В settings.py У меня есть следующие параметры для шаблонов:

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': ["templates", ] 
     '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', 
       'contact.views.contact_info', 
      ], 
     }, 
    }, 
] 

для параметра 'DIRS' Я также использовал os.path.join(BASE_DIR, "templates"). У этого был тот же самый результат.

Я также использовал

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

Это приведет к предупреждению устаревания.

В urls.py я действительно не делать ничего особенного:

from django.conf.urls import url, include 
from django.contrib import admin 
from django.views.generic import TemplateView 

urlpatterns = [ 
    url(r'^$', TemplateView.as_view(template_name="index.html"), name="index"), 

    url(r'^admin/', admin.site.urls), 
] 

Шаблон наследования прекрасно работает в других приложениях, поэтому каталог шаблонов найден.

В настройках: DEBUG=False

Когда я ввожу неправильный URL я получаю Django по умолчанию «не найден» страницу.

Что мне здесь не хватает?

+0

Ну, одна вещь, которая отсутствует любое описание актуальной проблемы. Что происходит? –

ответ

0

Я думаю, вы должны указать маршрут для шаблона 404.html, или использовать в виде ярлыков Джанго «get_object_or_404» обрабатывать ошибку 404.