python - 当 Django 似乎正在搜索正确的路径时如何解决“TemplateDoesNotExist”错误
问题描述
我正在为 Django 中的一个新项目设置结构。我创建了应用程序“帐户”,在其中添加了一个包含 html 模板的模板文件夹。但是,当我进入开发服务器并从我的索引页面(加载没有问题)中单击该页面的链接时,它会返回一个 TemplateDoesNotExist 错误消息。
我已经检查了错误消息,并且 Template-loader postmortem 详细说明了我的 html 模板的正确路径(我已经检查了无数次并确保了这一点),这表明 Django 正在寻找它的正确位置。但是,它也说“来源不存在”。考虑到 Django 似乎正在搜索正确的路径,是否有人有任何故障排除提示?
# From settings.py ('accounts' is also included with INSTALLED_APPS):
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# ...
'DIRS': [os.path.join(BASE_DIR, 'templates')],
# From urls.py:
from django.conf.urls import url, include
from accounts.views import index
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', index, name="index"),
url(r'^accounts/', include('accounts.urls')),
]
# From urls.py (accounts):
from .views import signup
urlpatterns = [
url(r'^signup/$', signup, name="signup"),
]
# From views.py (accounts):
def signup(request):
return render(request, 'signup')
解决方案
我猜你的服务器机器上是否有更新版本的 django。
DIRS
现在 (2.2)进入TEMPLATES
设置 var. 在django 旧版本(例如:1.8)上是在DIRS
设置 var.
然后,检查版本并移至最新版本并使用:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
...
},
]
关于设置。
推荐阅读
- reactjs - 如何重新渲染低优先级的重型 React 组件?
- slack - 我们如何在 Slack 中设置群聊主题
- ios - SwiftUI:TextField 中的多色文本
- powerbi - 如果单击另一个表的任何行,如何过滤一个表
- php - 重新分配对象变量是否会破坏对象(例如 mysqli)?
- javascript - 为什么 ''classList.add()'' 方法在我的 Vuetify 应用程序中不起作用?
- python - 根据第二个过滤数据帧的结果过滤条件数据帧:寻求效率提升
- powerbi - 按非字母数字字符过滤字符串
- forms - 表单验证会破坏小部件对齐
- javascript - NodeJS,SocketIO IO发出功能不起作用