Django 模板不存在@
Posted
技术标签:
【中文标题】Django 模板不存在@【英文标题】:Django template does not exist @ 【发布时间】:2021-01-07 02:52:54 【问题描述】:我正在使用 python 3.7.2 和 Django 2.1,每次尝试加载主页 url 时都会出现以下错误。
TemplateDoesNotExist at /
ghostwriters/post_list.html
请求方法:GET 请求地址:http://localhost:8080/ Django 版本:2.1 异常类型:TemplateDoesNotExist 异常值:
ghostwriters/post_list.html
异常位置: C:\Users\User.virtualenvs\ghostwriter-HT06mH6q\lib\site-packages\django\template\loader.py 在 select_template 中,第 47 行 Python 可执行文件: C:\Users\User.virtualenvs\ghostwriter-HT06mH6q\Scripts\python.exe
没有任何意义,因为确实没有 post_list.html 并且它不在我的应用级别 urls.py 或我的 views.py 中,所以为什么会发生这种情况?
urls.py:
从 django.urls 导入路径 from .views 导入 PostListView
urlpatterns = [ path('', PostListView.as_view(), name='home'), ]
views.py:
从 django.shortcuts 导入渲染从 django.views.generic 导入 列表视图
从 .models 导入帖子
类 PostListView(ListView): 模型 = 帖子 模板 = 'home.html'
settings.py:
模板 = [ 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], “APP_DIRS”:是的,
【问题讨论】:
【参考方案1】:如果您使用任何 CBV(基于类的视图),默认情况下 django 将查找具有某些特定模式的模板。在您的情况下,由于您使用的是列表视图,因此它将查找 YOURMODELNAME_list.html(小写的 YOURMODELNAME),如果您正在扩展详细视图,它将查找 YOURMODELNAME_detail.html 。如果您想在 CBV 中覆盖此行为试试这个,
class YourCBV(ListView):
template_name = 'your_new_template.html'
供您参考, Django official documentation
【讨论】:
以上是关于Django 模板不存在@的主要内容,如果未能解决你的问题,请参考以下文章