我已经阅读了多个教程的堆栈溢出的多个答案,但仍然无法正常工作。
该项目被称为“crepes_bretonnes”。 该项目的绝对路径是: /Users/Jack/Desktop/Projet_Django/crepes_bretonnes
此路径导致项目的根包含:
- 博客
- crepes_bretonnes
- db.sqlite3
- manage.py
- static
- 模板
settings.py
是在第二个文件夹:crepes_bretonnes
,包含:
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SETTINGS_DIR = os.path.dirname(__file__)
PROJECT_PATH = os.path.join(SETTINGS_DIR, os.pardir)
PROJECT_PATH = os.path.abspath(PROJECT_PATH)
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
os.path.join(PROJECT_PATH, 'templates'),
)
如果我做的事情正确:Setting_Dir是Settings.py
的路径,并返回到根路径(上一级)我使用功能pardir
所以,现在,Django会在crepes_bretonnes项目在以下路径根目录中搜索Templates文件夹模板: /Users/Jack/Desktop/Projet_Django/crepes_bretonnes
在blog
应用的views.py
函数返回一个'渲染”包含模板:
return render(request, 'blog/addition.html', locals())
此模板位于在博客文件夹中的模板文件夹。在addition.html
的
第一行是:
{% extends "base.html" %}
这base.html文件包含在所谓的模板的根文件夹。我不明白为什么它让我给以下错误:
Django tried loading these templates, in this order: Using loader django.template.loaders.filesystem.Loader: Using loader django.template.loaders.app_directories.Loader: /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/Django-1.8.3-py3.4.egg/django/contrib/admin/templates/base.html (File does not exist) /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/Django-1.8.3-py3.4.egg/django/contrib/auth/templates/base.html (File does not exist) /Users/Jack/Desktop/Projet_Django/crepes_bretonnes/blog/templates/base.html (File does not exist)
其实它无法找到我的项目的根目录下的templates文件夹中的base.html。有一些关于绝对路径的关键是我必须在某个时候失踪。
你能帮忙吗?
编辑:我正在使用Mac OS X. 以下是设置中所请求的所有打印路径。潘岳:
**Base_Dir** /Users/Jack/Desktop/Projet_Django/crepes_bretonnes
**Settings_Dir** /Users/Jack/Desktop/Projet_Django/crepes_bretonnes/crepes_bretonnes
**Project_Path** /Users/Jack/Desktop/Projet_Django/crepes_bretonnes
**Templates_Dir** /Users/Jack/Desktop/Projet_Django/crepes_bretonnes/templates
编辑:ANSWER
修改settings.py
,以使它看起来像这样:
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, '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',
],
},
},
]
您使用的是Windows吗? os.path.join(PROJECT_PATH,'templates')'的结果是什么? –