Django:为什么我的网址路径不使用我创建的名称空间?

时间:2020-10-31 22:42:31

标签: django templates namespaces

当尝试呈现我的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”不是有效的视图函数或模式名称。)

我的代码中缺少什么?

0 个答案:

没有答案