Django在错误的目录中查找模板

时间:2019-08-10 19:52:58

标签: python django

我遵循了一个教程,该教程教您按照~/project/main/templates/main的方式来构建模板目录,以避免和造成混淆。现在,我正在尝试创建另一个项目,并使用与最佳实践相同的结构。尝试渲染位于/home/arch/project/main/templates/main/index.html处的html时出现TemplateDoesNotExist错误,它表示Django正在/home/arch/project/templates/main/index.html

中查找

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

main / views.py

from django.shortcuts import render, redirect

def homepage_view(request):
    return render(request, "main/index.html")

main / urls.py

from django.urls import path
from . import views

app_name = "main"

urlpatterns = [
    path("", views.homepage_view, name="homepage_view")
    ]

我的项目的结构

.
├── db.sqlite3
├── main
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── __pycache__
│   │   ├── __init__.cpython-37.pyc
│   │   ├── urls.cpython-37.pyc
│   │   └── views.cpython-37.pyc
│   ├── templates
│   │   └── main
│   │       ├── includes
│   │       └── index.html
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── manage.py
├── media
├── project
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-37.pyc
│   │   ├── settings.cpython-37.pyc
│   │   ├── urls.cpython-37.pyc
│   │   └── wsgi.cpython-37.pyc
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── static

1 个答案:

答案 0 :(得分:0)

检查是否在INSTALLED_APPS中添加了您的应用。第一次尝试Django时遇到了这个问题。