Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当我有“URL重定向”时,如何禁用URL重定向;“下一步”;url?-德扬戈_Python_Django_Django Views_Django Templates_Django Authentication - Fatal编程技术网

Python 当我有“URL重定向”时,如何禁用URL重定向;“下一步”;url?-德扬戈

Python 当我有“URL重定向”时,如何禁用URL重定向;“下一步”;url?-德扬戈,python,django,django-views,django-templates,django-authentication,Python,Django,Django Views,Django Templates,Django Authentication,我用Django创建了一个博客,每当用户登录时,URL就会重定向到主页并显示一条成功消息。不过,这很好,只要需要登录才能查看某个页面,Django就会重定向到该登录页面,并将“?next=”附加到URL的末尾以重定向回上一页。问题是,用户登录后,“下一个”URL不会执行,Django会重定向到主页并显示成功消息?有没有办法在有“下一个”URL时禁用此重定向 views.py from django.urls import reverse from django.contrib import me

我用Django创建了一个博客,每当用户登录时,URL就会重定向到主页并显示一条成功消息。不过,这很好,只要需要登录才能查看某个页面,Django就会重定向到该登录页面,并将“?next=”附加到URL的末尾以重定向回上一页。问题是,用户登录后,“下一个”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'})
从django.url反向导入
从django.contrib导入消息
从django.shortcuts导入渲染,重定向
从django.contrib.auth导入登录
从django.utils.safestring导入标记_safe
from.forms导入UserLoginForm
def登录_视图(请求):
如果request.method==“POST”:
form=UserLoginForm(data=request.POST)
如果form.is_有效():
student=form.get\u user()
登录(请求、用户)
create\u url=reverse('post-create')
messages.success(请求,标记为“安全”(f'您现在已登录。是否要?'))
返回重定向('home')
其他:
form=UserLoginForm()
返回呈现(请求'users/login.html',{'form':表单,'title':'login'})

您可以从
请求中获取下一个
url。获取
,如果主页不存在,则默认为主页

return redirect(request.GET.get('next', 'home'))

这样,如果查询参数中有
?next=…
,它将被用作重定向路径,如果没有,那么您将重定向到
“home”

您是否选中了
request.POST.get('next')