#python #django
#python #django
Вопрос:
После регистрации моего пользователя я хотел бы перенаправить его на страницу входа в систему. Однако reverse_lazy, похоже, не может найти мой путь для входа.
views.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')
urls.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'),
]
Ответ №1:
Это потому, что вы указали an app_name = …
, в этом случае вы добавляете к имени представления префикс пространства имен:
class SignUpView(CreateView):
# …
success_url = reverse_lazy('accounts:login')
Кроме того, вы допустили опечатку, это success_url
[Django-doc], а не . succes_url
Комментарии:
1. Похоже, это не устраняет проблему.
2. @djo: вы также допустили опечатку, это
success_url
🙂