首页 > 解决方案 > Django 无法呈现我的模板,因为它无法找到我的 url。这只发生在我的一个应用程序中的 url 模式

问题描述

Django 无法加载我的模板,因为“NoReverseMatch at /books/outlines/20”

此问题存在于模板中的链接中:

    <a href="{% url 'test'%}" class="type">New Blank Outline</a>

这是我的大纲/urls.py

from django.urls import path
from .views import Dashboard
from . import views as outline_views

urlpatterns = [
 path('<int:pk>/', outlines_views.outline, name='url-outline')
 path('blank/<int:storyPk>', outline_views.newBlankOutline, name='url-blankOutline'),
 path('test/', outline_views.testView, name = 'test')
]
urlpatterns += staticfiles_urlpatterns()

这是测试视图:

def testView(request):
  return render(request, 'outlines/test.html')

这是大纲视图:

def outline(request, pk):
context = {
    'storyPk': pk
}
return render(request, 'outlines/outline.html', context)

django 错误告诉我: NoReverseMatch at /books/outlines/20 Reverse for 'test' not found。'test' 不是有效的视图函数或模式名称。

奇怪的是,如果我将模板中的 url 名称更改为另一个应用程序的 urls.py 文件中的 url 名称,它会使模板没有问题。知道为什么找不到网址吗?

标签: pythonhtmldjango

解决方案


<a href="{% url 'YOURAPP_NAME:test'%}" class="type">New Blank Outline</a>

试试这个怎么样


推荐阅读