django TemplateDoesNotExist异常,但模板存在

时间:2018-02-27 20:22:33

标签: python django

我正在尝试在django中渲染模板。 当我连接到网站时出现此错误:

  

django.template.loaders.filesystem.Loader:path-to-azerty / templates / base.html(源不存在)

这是我的项目目录结构:

azerty/  
__init__.py  
├── settings.py  
├── templates  
│          └── base.html  
├── urls.py  
├── views.py  
└── wsgi.py  

这是我的代码:

// ulrs.py

from django.contrib import admin
from django.urls import path
from azerty import views

urlpatterns = [
    path('', views.index),
    path('admin/', admin.site.urls),
]



// settings.py

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',
            ],
        },
    },
]



//views.py

from django.shortcuts import render

def welcome(request):
    return render(request, 'base.html')`    

1 个答案:

答案 0 :(得分:2)

你的' DIRS'设置用于项目目录中的模板目录(包含manage.py的目录)。

如果您希望模板位于内部目录(包含settings.py的目录)上,则需要将其更改为:

os.path.join(BASE_DIR, 'azerty', 'templates')],

有时使用的另一个选项是将azerty添加到INSTALLED_APPS。然后,app loader将找到该目录,您可以使用'DIRS': [],