【发布时间】:2020-07-07 03:46:35
【问题描述】:
我用 Django 创建了一个博客,每当用户登录时,URL 都会重定向到主页并显示成功消息。这很好,但是,每当需要登录才能查看某个页面时,Django 都会重定向到登录页面并将“?next =”附加到 URL 的末尾以重定向回上一页。问题是用户登录后,“next” URL 没有执行,Django 重定向到主页并显示成功消息?有没有办法在有“下一个”URL 时禁用此重定向?
views.py
from django.urls import reverse
from django.contrib import messages
from django.shortcuts import render, redirect
from django.contrib.auth import login
from django.utils.safestring import mark_safe
from .forms import UserLoginForm
def login_view(request):
if request.method == 'POST':
form = UserLoginForm(data=request.POST)
if form.is_valid():
student = form.get_user()
login(request, user)
create_url = reverse('post-create')
messages.success(request, mark_safe(f'You are now logged in. Do you want to <a href="{ create_url }" class="link" title="Create a post">create a post</a>?'))
return redirect('home')
else:
form = UserLoginForm()
return render(request, 'users/login.html', {'form': form, 'title': 'Log in'})
【问题讨论】:
-
你检查过
request.POST.get('next')吗?
标签: python django django-views django-templates django-authentication