没有找到页面



我有以下url:

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})

所以当我进入登录,注销或password_change页面时我得到了错误" page is not found">

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

但是如果我评论配置文件视图和它的url一切都工作得很好。为什么url 'logout'等转到配置文件视图?

我认为password_change将首先匹配<str:urlsername>。因此,解决方案是将您的url模式更改为下面的代码。

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')
]

相关内容

  • 没有找到相关文章

最新更新