【发布时间】:2020-08-28 18:21:42
【问题描述】:
我得到了什么: (从登录页面重定向)
Using the URLconf defined in webapp.urls, Django tried these URL patterns, in this order:
admin/
[name='blog-home']
about/ [name='blog-about']
register/ [name='register']
login/ [name='login']
logout/ [name='logout']
The current path, login/{ url 'register' }, didn't match any of these.
我想重定向到注册/页面,但是 django 转到登录/注册。
我的主要项目网址:
from django.contrib import admin
from django.contrib.auth import views as auth_views
from django.urls import path, include
from users import views as user_views
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
path('register/', user_views.register, name='register'),
path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'),
path('logout/', auth_views.LogoutView.as_view(template_name='users/logout.html'), name='logout'),
]
(Pycharm在这个文件中找不到users模块,但是django没有报错,完全没问题)
我的主要项目安装了应用程序:
INSTALLED_APPS = [
'blog.apps.BlogConfig',
'users.apps.UsersConfig',
'crispy_forms',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
我在主项目 settings.py 中添加的内容:
CRISPY_TEMPLATE_PACK = 'bootstrap4'
LOGIN_REDIRECT_URL = 'blog-home'
LOGIN_URL = 'login'
用户意见.py:
from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm
from django.contrib import messages
from .forms import UserRegisterForm
def register(request):
if request.method == 'POST':
form = UserRegisterForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
messages.success(request, f'Account created for {username}!')
return redirect('blog-home')
else:
form = UserRegisterForm()
return render(request, 'users/register.html', {'form': form})
谢谢!
【问题讨论】: