【发布时间】:2015-05-10 19:06:59
【问题描述】:
使用 Django 1.8
我有两个同名的模板,
base.html/mysite/templates/base.html
另一个来自位置相同的应用 (base.html),
/mysite/app/templates/base.html
我的模板设置,
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',
],
},
},
]
查看
def home(request):
c = { name: 'myname', username: 'myusername'}
return render(request, 'base.html', c)
这会从项目根目录调用“base.html”,但是如何从app/template 目录调用模板。
感谢您的任何参考!
更新:
我已将应用位置添加到模板目录中,
'DIRS': [os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, 'app/templates')],
现在我的 IDE 显示了这两个文件,但仍呈现根的 base.html。如何引用一个模板而不是另一个模板?
更新: 修复了在应用模板级别添加了一个目录。
现在我的应用模板目录结构如下所示,
mysite/app/templates/app/base.html
如果应用在已安装的应用元组中,则在 TEMPLATE DIR 中不需要os.path.join(BASE_DIR, 'app/templates')。
欢迎在 Django 1.8 上提供更高效的解决方案。
【问题讨论】: