首页 > 解决方案 > 在 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')),

但没有任何效果。

谢谢你。

标签: python-3.xdjangourl

解决方案


假设您的应用名称是users

path('', include('users.urls/login', namespace='users')),

将路径更改为

path('', include('users.urls', namespace='users')),

通过浏览器访问页面

http://localhost:8000/登录

在模板中,此 URL 应称为

{% url 'users:login' %}

在视图中应该是

返回 HttpResponseRedirect(反向(“用户:登录”)


推荐阅读