2016-02-16 2 views
2

Я пытаюсь создать base.html, чтобы расширить его из моих приложений.Django Наследование шаблона (место для продолжения)

Моя структура:

ROOT (pyshop)

  • опросы
    • шаблоны
      • опросы
        • index.html (содержит {% распространяется «основание. html "%})
  • pyshop
    • шаблоны
      • base.html

Но он не может найти base.html

Template-погрузчик посмертных

Джанго попытался загрузки этих шаблонов, в следующем порядке:

Использование Джанго двигателя: django.template.loaders.app_directories .Loader: /home/sz/Projects/pyshop/polls/templates/pyshop/base.html (источник не существует) django.template.loaders.app_directories.Loader:/home/sz/Projects/pyshop/venv/lib /python3.5/site-packages/django/contrib/admin/templates/pyshop/base.html (источник не существует) django.template.loaders.app_director ies.Loader: /home/sz/Projects/pyshop/venv/lib/python3.5/site-packages/django/contrib/auth/templates/pyshop/base.html (Источник не существует)

Какие-либо предложения?

ответ

2

Ваш каталог pyshop/pyshop/templates не будет искать загрузчик каталогов приложений, потому что это не приложение. Обычный подход заключается в том, чтобы добавить этот каталог в список DIRS.

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'pyshop', 'templates'),] 
    ... 
    } 
] 

Во-вторых, отслеживающий делает это выглядит так, как будто вы делаете {% extends "pyshop/base.html" %}, не {% extends "base.html" %} как в вашем вопросе. Если у вас есть {% extends "base.html" %}, вам необходимо переместить ваш шаблон base.html в pyshop/pyshop/templates/pyshop/base.html.

+0

Благодарим вас за ответ. Установите DIRS для решения моей проблемы! О {% extends "pyshop/base.html"%} я опубликовал неправильную трассировку, я пробовал много разных вариантов :) –

+1

app_dirs был правдой, но это не помогает. –

+1

'' APP_DIRS ': True' означает, что он будет искать каталоги шаблонов для каждого приложения в настройке 'INSTALLED_APPS'. Однако каталог 'pyshop/pyshop' (который содержит' settings.py' и т. д.) обычно не добавляется в 'INSTALLED_APPS', поэтому наличие« APPS »: True' не помогает. Поэтому вместо этого вы добавляете каталог в 'DIRS'. – Alasdair