python - 我试图将模板添加到我的 Django 项目,但它返回一个错误:TemplateDoesNotExist at /
问题描述
将模板添加到我的 Django 项目时出错。
设置.py:
TEMPLATE_DIRS = (
os.path.join(os.path.dirname(__file__), 'templates'),
)
视图.py:
def index(request):
a = models.User.objects.get()
return render(request, "main/list.html", {"list": a})
和list.html:
{% extends "base.html" %}
{% block title %}Chats{% endblock %}
{% block content %}
{% if list%}
{% for i in list%}
<h2>{{i.usrname}}</h2>
{% endif %}
项目文件夹本身如下所示:
主文件夹是应用程序。
谢谢你的帮助!
解决方案
您应该os.path.join(...)
在模板“DIRS”中包含
例子:
在 settings.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
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',
],
},
},
]
然后在你的文件夹结构中,你应该有
app_name (main app folder) --> templates --> app_name(again) --> templates go here.
编辑:我忘了提到,为了做到这一点,你必须import os
推荐阅读
- google-cloud-platform - gcloud - 找出子网中的免费 ip 数量
- postgresql - Book The Art of PostgreSQL 自学 不懂横向连接是什么意思?
- vue.js - 使用新版本自动更新 Vue 站点/PWA
- arrays - 查找索引的时间复杂度等于数组(排序)值
- angular - crypto__WEBPACK_IMPORTED_MODULE_13__.createDecipheriv 不是函数
- reactjs - TypeError:无法读取未定义的属性“getPosts”-useQuery 挂钩,反应功能组件
- c - 相同的代码不同的结果(C编程语言)
- c# - 访问 XMLHttpRequest 已被阻止
- c# - c# HttpClient - 从传输流中接收到意外的 EOF 或 0 字节
- java - 如何自定义我使用 html 创建的 WhatsApp 分享按钮的颜色、字体、背景颜色和对齐方式?