Python 3.x 在django rest框架中登录后重定向
我试图在用户登录后重定向到特定的url。我正在使用django rest框架的内置用户身份验证。我尝试了以下代码: 在URL.py中,我有以下内容:Python 3.x 在django rest框架中登录后重定向,python-3.x,django-rest-framework,Python 3.x,Django Rest Framework,我试图在用户登录后重定向到特定的url。我正在使用django rest框架的内置用户身份验证。我尝试了以下代码: 在URL.py中,我有以下内容: urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^register/$',views.CreateUserView.as_view(),name='user'), url(r'^api-auth/',include('rest_framework.urls',n
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^register/$',views.CreateUserView.as_view(),name='user'),
url(r'^api-auth/',include('rest_framework.urls',namespace='rest_framework')),
url(r'^',include(router.urls)),
]
LOGIN_REDIRECT_URL = '/task'
在settings.py中,我包含了以下内容:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^register/$',views.CreateUserView.as_view(),name='user'),
url(r'^api-auth/',include('rest_framework.urls',namespace='rest_framework')),
url(r'^',include(router.urls)),
]
LOGIN_REDIRECT_URL = '/task'
我在下面的“localhost/register”页面,创建用户并登录后,它会重定向到同一个“localhost/register页面”。如何重定向到主页?我缺少什么吗?试试这个登录视图
from django.contrib.auth.forms import AuthenticationForm
def Login(request):
if request.method == 'POST':
#AuthenticationForm_can_also_be_used__
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
form = login(request,user)
messages.success(request, f' wecome {username} !!')
return redirect('index')
else:
messages.info(request, f'account done not exit plz sign in')
form = AuthenticationForm()
return render(request, 'user/login.html', {'form':form,'title':'log in'})
将此添加到views.py
并设置任何重定向这是我项目的一部分,以防您需要在
视图.py
中查看完整文件。注册后,您应该将重定向到登录
页面或您的主页
页面
def寄存器(请求):
如果request.method==“POST”:
form=UserRegisterForm(request.POST)
如果form.is_有效():
form.save()
username=form.cleaned\u data.get('username'))
#重定向到这里
返回重定向('登录')
其他:
form=UserRegisterForm()
返回呈现(请求'users/register.html',{'form':form})
您还可以像这样使用重定向:
/url.py
来自。导入视图
应用程序名称='您的应用程序名称'
URL模式=[
路径(“”,views.index,name='index'),
在您的settings.py
addLOGIN\u REDIRECT\u URL=':index'
中,您是否为登录编写了任何视图?我只是使用django框架的内置登录视图。尚未生成任何自定义视图。感谢您的建议。我一定会尝试。