【问题标题】:Page is not found找不到页面
【发布时间】:2021-01-24 12:36:49
【问题描述】:

我有以下网址:

urlspatterns=[  path('<str:urlsername>/', views.profile, name='profile'),
    path('login/', auth_views.LoginView.as_view(),name ='login'),
    path('logout/', auth_views.LogoutView.as_view()),
    path('password_change/', auth_views.PasswordChangeView.as_view(),name='password_change'),]

在第一个 url 的视图中我有这个:

def profile(request, username):
    user = get_object_or_404(User, username = username)
    posts = Post.objects.filter(author = user).order_by('-pub_date')
    return render(request,'profile.html', {'posts':posts,'user':user})

所以当我转到页面登录、注销或密码更改时,我收到错误“找不到页面”

Request Method: GET
Request URL:    http://127.0.0.1:8000/password_change/
Raised by:  posts.views.profile

但如果我评论个人资料视图及其网址,一切正常。为什么 url 'logout' 等会进入个人资料视图?

【问题讨论】:

  • 您的问题中有些东西是没有人能理解的。而且我认为您应该上传完整的views.py,以便更好地澄清问题。

标签: django django-views django-urls


【解决方案1】:

我认为password_change 将首先匹配&lt;str:urlsername&gt;。 所以解决方案是将您的 urlspatterns 更改为下面的代码。

urlspatterns=[  
    path('login/', auth_views.LoginView.as_view(),name ='login'),
    path('logout/', auth_views.LogoutView.as_view()),
    path('password_change/', auth_views.PasswordChangeView.as_view(),name='password_change'),
    path('<str:urlsername>/', views.profile, name='profile')
]

【讨论】:

    猜你喜欢
    • 2016-08-25
    • 2013-06-28
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 2012-12-29
    相关资源
    最近更新 更多