如何解决Django 项目中的 NoReverseMatch 错误:Bootstrap 链接导致问题?不知道如何或为什么
我真的很困惑如何解决这个问题。我之前处理过 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 持枪吗?我很感激任何帮助。
解决方法
bootstrap 没有问题,一个可能的错误可能是你没有在 url 中提到 app_name。
您的 urls.py:
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")
]
那么html文件应该有:
correct: {% url 'network:register' %}
incorrect {% url 'register'%}
我们只是将引导程序链接到我们的 html 文件,因此它不会干扰 url。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。