当尝试呈现我的URL“ http://127.0.0.1:8000/welcomeLiteApp/new”时,出现错误TemplateDoesNotExist at /welcomeLiteApp/new
。我的模板全部位于我的模板文件中一个命名空间的目录内,即,存放我的new.html文件的目录是Documents / Code / welcomeLite / welcomeLiteApp / templates / welcomeLiteApp
Django在寻找我的new.html模板时不包括名称空间目录。我可以从此错误消息中得知:
Django tried loading these templates, in this order:
Using engine django:
django.template.loaders.app_directories.Loader: Documents/Code/welcomeLite/welcomeLiteApp/templates/new.html (Source does not exist)
我尝试设置与命名间隔(https://docs.djangoproject.com/en/3.1/intro/tutorial03/)上的Django文档非常相似的视图/ URL
我认为命名空间目录正确包含在new.html文件和urls.py文件中。
new.html文件:
<li><a href="{% url 'welcomeLiteApp:new' %}">"This is the new.html template"</a></li>
urls.py文件:
from django.contrib import admin
from django.urls import include, path
from . import views
app_name = 'welcomeLiteApp'
urlpatterns = [
path('', views.index, name='index'),
path('new', views.create, name='new'),
]
我只是尝试将new.html文件从名称间隔目录中删除,因此它位于Django最初在其寻找文件的目录中(Documents / Code / welcomeLite / welcomeLiteApp / templates / new.html),并且至少能够得到一个不同的错误(位于/ welcomeLiteApp / new的NoReverseMatch 找不到“ new”的反向按钮。 “ new”不是有效的视图函数或模式名称。)
我的代码中缺少什么?