python-3.x - 在 Django 中创建 url 路径时出现错误“找不到‘登录’的反向”
问题描述
我是 Django 新手,今天尝试将我的 Django 应用程序发布到 Heroku 时,总是遇到错误
Reverse for 'login' not found. 'login' is not a valid view function or pattern name.
我知道我错在哪里。问题出现在 urls.py 中,所以这是我的代码:
urlpatterns = [
path('', include('users.urls', 'login')),
path('admin/', admin.site.urls),
path('jet/', include('jet.urls', 'jet')),
path('citizens/', include('citizens.urls', namespace='citizens')),
path('users/', include('users.urls', namespace='users')),
#path('accounts/', include('django.contrib.auth.urls')),
]
这是我在用户内部的 urls.py:
from django.urls import path
from . import views
app_name = 'users'
urlpatterns = [
path("", views.index, name="index"),
path("login", views.login_view, name="login"),
path("logout", views.logout_view, name="logout"),
]
在我的项目中,登录页面位于 URL“127.0.0.1:8000/users/login”。这意味着当你只输入“127.0.0.1:8000/users”时,页面会提示一个错误:Reverse for 'login' not found。'login' 不是有效的视图函数或模式名称。
我希望我的路径将直接转到用户/登录,但我不知道该怎么做。我试过了
path('', include('users.urls', 'login')),
或者
path('', include('users.urls/login', namespace='users')),
或者
path('', include('users.urls.login', namespace='users')),
但没有任何效果。
谢谢你。
解决方案
假设您的应用名称是users
path('', include('users.urls/login', namespace='users')),
将路径更改为
path('', include('users.urls', namespace='users')),
通过浏览器访问页面
http://localhost:8000/登录
在模板中,此 URL 应称为
{% url 'users:login' %}
在视图中应该是
返回 HttpResponseRedirect(反向(“用户:登录”))
推荐阅读
- opengl-es - 字体渲染到屏幕外 FBO 上不起作用。(注意:字体是通过使用带有 glTexImage2D 的 Freetype 库创建纹理来加载的)
- xamarin - 选项卡式页面和 mvvm 过滤器
- java - 在客户端机器上安装 db 的最佳方法是什么?
- c# - 插入 bytea 列时出现内存不足错误
- python - 如何在python中的.join()中添加一个for循环
- mysql - 将我的数据库远程连接到 prometheus
- python-3.6 - 当我们使用reportlab创建表格时,有没有办法让第一行始终保持不变?
- reactjs - React / React Native:如何在功能组件中使用回调引用?
- vue.js - Vue3 - 组合函数与 import { functionObject } from 'module'
- c - 当 x,y 是字符并且 ux = (unsigned)x, uy = (unsigned)y 时,在 C 中 ux - uy == - (y - x) 是否总是正确的?