python - Django的reverse_lazy配置不正确

标签 python django

在我的用户注册后,我想将他们重定向到登录页面。但是,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/

相关文章:

python - Django 嵌套 transaction.atomic 抛出 IntegrityError "SAVEPOINT does not exist"与 MySQL

python - 读取 tarfile 内的大文件头 (~9GB),无需完全提取

python - 比较列表列表的元素并删除

python - Keras:获取 imagenet 上预训练模型的标签名称

python - Django 表单集 : Passing a parameter in each form instance

python - 如何屏蔽张量中每一行的特定切片

django - 使用API​​-View在Django-Rest-Framework中进行分页

python - 重写Django queryset的Update方法

python - ACCESS_REFUSED - 使用身份验证机制 AMQPLAIN 拒绝登录。有关详细信息,请参阅代理日志文件

python - Django-registration and ReCaptcha integration - 如何传递用户的IP