我正在尝试在注册后将用户重定向到登录页面,但出现“找不到登录的错误”错误
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 找不到“登录”的反向按钮。 “登录”不是有效的视图功能或模式名称。
答案 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})