注册后无法使用Django中的重定向功能将用户重定向到登录页面

时间:2020-05-03 08:13:35

标签: django

我正在尝试在注册后将用户重定向到登录页面,但出现“找不到登录的错误”错误

accounts / urls.py

from django.urls import path,include
from . import views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('', views.home, name='home'),
    path('about/', views.about, name='about'),
    path('articles/', include('articles.urls')),
    path('accounts/', include('users.urls')),
    path('admin/', admin.site.urls),
]

users / urls.py

    from . import views

    app_name = 'users'

    urlpatterns = [
        path('register/', views.register, name='register'),
        path('login/', views.login, name='login'),
    ]

views.py

def register(request):
    form = RegisterForm()
    if request.method == 'POST':
        form = RegisterForm(request.POST)
        print(request.POST)
        if form.is_valid():
            form.save()
            user = form.cleaned_data.get('username')
            messages.success(request, 'Account was create for ' + user)
            return redirect('login')
    return render(request, 'register.html', {'form': form})

我得到的错误

在/ accounts / register /处的NoReverseMatch 找不到“登录”的反向按钮。 “登录”不是有效的视图功能或模式名称。

1 个答案:

答案 0 :(得分:1)

由于您指定了app_name,因此需要在视图名称前加上该app_name,因此它应该为redirect('users:login')

def register(request):
    form = RegisterForm()
    if request.method == 'POST':
        form = RegisterForm(request.POST)
        print(request.POST)
        if form.is_valid():
            form.save()
            user = form.cleaned_data.get('username')
            messages.success(request, 'Account was create for ' + user)
            return redirect('users:login')
    return render(request, 'register.html', {'form': form})