От вопроса комментарии, кажется, у вас возникли проблемы с шаблонами Джанго вместо urlconfig. Вот как работают шаблоны Django. В вашем вы определяете переменную TEMPLATES_DIRS
, где вы указываете кортеж всех каталогов, где Django будет искать шаблоны.
Предположим, у вас есть следующие TEMPLATES_DIRS
:
TEMPLATES_DIRS = (
'/absolute/path/to/foo',
'/absolute/path/to/bar',
)
Затем, если вы посмотрите на шаблон base.html
, Django будет искать его в следующих местах и будет использовать первое место, если он находит один:
/absolute/path/to/foo/base.html
/absolute/path/to/bar/base.html
В вашем случае вы упомянули, что сохраняете свои шаблоны как в папке проекта Django, так и в папке приложения. В этом случае вы должны убедиться, что обе папки определены в TEMPLATES_DIRS
как:
TEMPLATES_DIRS = (
'/absolute/path/to/project/templates',
'/absolute/path/to/app/templates',
)
Тогда в вашем случае Django будет в состоянии найти как base.html
и index.html
. Теперь, чтобы упростить работу, вы можете определить PROJECT_PATH
в своем settings.py
, который сохранит абсолютный путь к вашему пути проекта, чтобы вы могли легко переместить проект в другое место. Я думаю, что это может быть ваша проблема. В Django> = 1.4, у вас есть следующая структура проекта:
/project <= this should be your PROJECT_PATH
/project <= instead of this
templates/
base.html
settings.py
/recipe
templates/
index.html
models.py
Имея это в виду, попробовать использовать что-то вроде этого:
PROJECT_PATH = os.path.abspath(os.path.join(__file__, '..', '..'))
PROJECT_NAME = os.path.basename(PROJECT_PATH)
TEMPLATES_DIRS = (
os.path.join(PROJECT_PATH, PROJECT_NAME, 'templates'),
os.path.join(PROJECT_PATH, 'recipe', 'templates')
)
В приведенном выше project_path вычисляет абсолютный путь проекта. Представьте, что ваш settings.py
находится по адресу /some/path/project/project/settings.py
. Затем вы вычисляете траекторию проекта следующим образом:
>>> # settings.py
>>> print __file__
/some/path/project/project/settings.py
>>> print os.path.join(__file__, '..', '..')
/some/path/project/project/settings.py/../../
>>> # now abspath normalizes the path two levels up
>>> print os.path.abspath(os.path.join(__file__, '..', '..'))
/some/path/project
>>> # now you figure out the project name so that you can get the project templates folder
>>> print os.path.basename(os.path.abspath(os.path.join(__file__, '..', '..')))
project
>>> print os.path.join(PROJECT_PATH, PROJECT_NAME, 'templates')
/some/path/project/project/templates
>>> print os.path.join(PROJECT_PATH, 'recipe', 'templates')
/some/path/project/recipe/templates
какая ошибка отображается? Говорит ли он, что представления не существует? –
если я говорю http: // localhost: 8000/ am get templatedoesnt существует base.html – nyfer
Это не бизнес компании urls.py. – iMom0