har*_*der 1 django django-templates django-settings
所以我一直在尝试设置一个django设置模块,它将检查环境变量和加载设置.
下面是我的设置模块的样子
/templates
home.html
/settings
base.py
prod.py
dev.py
test.py
Run Code Online (Sandbox Code Playgroud)
base.py
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
TEMPLATE_DIRS = [
os.path.join(PROJECT_ROOT, "templates"),
]
urls.py
from django.views.generic.simple import direct_to_template
urlpatterns = patterns('',
url(r"^$", direct_to_template, {'template' : 'home.html' }, name="home"),
)
Run Code Online (Sandbox Code Playgroud)
当我将所有设置放在一个文件中时,这工作得很好,但是因为我将文件拆分了,所以我得到错误:
TemplateDoesNotExist at /
home.html
Template-loader postmortem
Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
/Users/Tulsa/Apps/tulsa-applications-co/tulsa/tulsa/settings/templates/home.html (File does not exist)
Using loader django.template.loaders.app_directories.Loader:
/Users/Tulsa/.Apps/tulsa_io/lib/python2.7/site-packages/django/contrib/auth/templates/home.html (File does not exist)
/Users/Tulsa/.Apps/tulsa_io/lib/python2.7/site-packages/django/contrib/admindocs/templates/home.html (File does not exist)
/Users/Tulsa/.Apps/tulsa_io/lib/python2.7/site-packages/grappelli/templates/home.html (File does not exist)
/Users/Tulsa/.Apps/tulsa_io/lib/python2.7/site-packages/django/contrib/admin/templates/home.html (File does not exist)
/Users/Tulsa/.Apps/tulsa_io/lib/python2.7/site-packages/pagination/templates/home.html (File does not exist)
/Users/Tulsa/.Apps/tulsa_io/lib/python2.7/site-packages/djangosaml2/templates/home.html (File does not exist)
/Users/Tulsa/Apps/tulsa-applications-co/tulsa/tulsa/apps/profiles/templates/home.html (File does not exist)
/Users/Tulsa/.Apps/tulsa_io/lib/python2.7/site-packages/debug_toolbar/templates/home.html (File does not exist)
Using loader django.template.loaders.eggs.Loader:
Run Code Online (Sandbox Code Playgroud)
我在这里失踪了什么?
以上所有答案都需要配置TEMPLATE_DIRS或TEMPLATE_LOADERS,这是不必要和正确的.您只需将您的应用程序放入INSTALLED_APPS即可.
例如,如果您的应用程序位于MyMegaApp(settigs.py所在的位置),换句话说,您的项目结构如下所示
MyMegaApp
MyMegaApp
templates
index.html
settings.py
manage.py
Run Code Online (Sandbox Code Playgroud)
然后你必须像这样添加你的应用程序
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'MyMegaApp'
)
Run Code Online (Sandbox Code Playgroud)
之后,您的index.html模板将在MyMegaApp/templates文件夹中找到
| 归档时间: |
|
| 查看次数: |
4169 次 |
| 最近记录: |