在我的用户注册后,我想将他们重定向到登录页面。但是,reverse_lazy 似乎无法找到我的登录路径。
View .py
from django.shortcuts import render
from django.urls import reverse_lazy
from django.views.generic import CreateView
from . import forms
# Create your views here.
class SignUpView(CreateView):
form_class = forms.UserCreateForm
template_name = 'accounts/signup.html'
#Redirect login page once they have successfully signed up
succes_url = reverse_lazy('login')
url.py
from django.urls import path
from django.contrib.auth import views as auth_views
from . import views
app_name = 'accounts'
urlpatterns = [
path('login/', auth_views.LoginView.as_view(template_name='accounts/login.html'), name='login'),
path('logout/', auth_views.LogoutView.as_view(template_name='accounts/logout.html'), name='logout'),
path('signup/', views.SignUpView.as_view(template_name='accounts/signup.html'), name='signup'),
]
最佳答案
这是因为您指定了 app_name = ...
,在这种情况下,您可以在 View 名称前加上命名空间:
class SignUpView(CreateView):
# …
success_url = reverse_lazy('<b>accounts:</b>login')
你还打错了,是success_url
[Django-doc] ,而不是 。succes_url
关于python - Django的reverse_lazy配置不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65259071/