【发布时间】:2021-07-31 16:29:19
【问题描述】:
我真的很困惑如何解决这个问题。我之前处理过 NoReverseMatch 错误,我知道这通常是 URL 路径或views.py 中与之相关的函数的问题,但是我尝试渲染的这个特定页面不断返回 NoReverseMatch 说有一个我的 layout.html 模板中包含我指向 Bootstrap 的链接的行就是问题所在。我试过编辑这条线,但没有用。我已经检查了 views.py 中的 URL 路径和相关函数,但我看不到任何提示错误的内容。这就是我的意思...
错误信息
Reverse for 'register' not found. 'register' is not a valid view function or pattern name.
Error during template rendering
In template C:\Users\Leigh\Desktop\Coursework\CS50Web\project4\network\templates\network\layout.html, error at line 7
Reverse for 'register' not found. 'register' is not a valid view function or pattern name.
这是第 7 行的图片。
正如我所提到的,我已经检查了 views.py 中的第 160 行,它调用了 urls.py 中的 URL。
这里是 urls.py
from django.urls import path
from . import views
app_name = "network"
urlpatterns = [
path("", views.index, name="index"),
path("login", views.login_view, name="login"),
path("logout", views.logout_view, name="logout"),
path("register", views.register, name="register"),
path("post", views.newpost, name="newpost"),
path("post/<int:post_id>", views.post, name="post"),
path("user/<int:user_id>", views.user, name="user"),
path("following", views.following, name="following")
]
我真的很茫然。我看不到任何会导致 NoReverseMatch 的东西。尽管 Django 说没有路径、有效的视图/函数/模式名称等,但“register.html”肯定存在。 有人在 Django 上对这类事情持枪吗?如有任何帮助,我将不胜感激。
【问题讨论】:
-
您是否在
urls.py中使用 include 和 namespace=".." ? -
嗨@AliAref 你到底是什么意思bu包含命名空间“..”?
-
尝试使用
your_app_name:register而不是只反向使用register。作为return reverse("app_name:register") -
@AliAref 你的意思是在 url 路径中吗?
-
@AliAref 刚刚试了一下。它现在返回一个新的 AttributeError 。 “str”对象没有属性“get”
标签: python django django-urls