Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.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 Django:如何无处返回?_Python_Django_Redirect_Return - Fatal编程技术网

Python Django:如何无处返回?

Python Django:如何无处返回?,python,django,redirect,return,Python,Django,Redirect,Return,(很抱歉我的英语不好) 你好,伙计。我在django有这样一种观点: if request.user.is_authenticated: favelan = get_object_or_404(elan,id = id) isfav = True if favelan.favorit.filter(id = request.user.id).exists(): favelan.favorit.remove(reque

(很抱歉我的英语不好)

你好,伙计。我在django有这样一种观点:

    if request.user.is_authenticated:
        favelan = get_object_or_404(elan,id = id)
        isfav = True
        if favelan.favorit.filter(id = request.user.id).exists():
            favelan.favorit.remove(request.user)
            messages.success(request,'Elan Uluzlulardan Silindi!')
            isfav = False
            return redirect("/",{'isfav':isfav})
        else:
            favelan.favorit.add(request.user)
            messages.success(request,'Elan Uluzlulara Elave Olundu!')
            isfav = True
            return redirect("/",{'isfav':isfav})
    return redirect('/hesablar/qeydiyyat')
reqabspath = request.path  
return redirect(reqabspath,{'isfav':isfav})
我希望此视图无处重定向用户。我是如何做到的?我尝试过:

    if request.user.is_authenticated:
        favelan = get_object_or_404(elan,id = id)
        isfav = True
        if favelan.favorit.filter(id = request.user.id).exists():
            favelan.favorit.remove(request.user)
            messages.success(request,'Elan Uluzlulardan Silindi!')
            isfav = False
            return redirect("/",{'isfav':isfav})
        else:
            favelan.favorit.add(request.user)
            messages.success(request,'Elan Uluzlulara Elave Olundu!')
            isfav = True
            return redirect("/",{'isfav':isfav})
    return redirect('/hesablar/qeydiyyat')
reqabspath = request.path  
return redirect(reqabspath,{'isfav':isfav})

但它不起作用。我不想重定向用户。请帮助我。谢谢。

您可以重定向到用户在发送请求之前所在的页面,并使用
返回HttpResponseRedirect(request.META['HTTP\u REFERER'])
。所以用户在请求后将保持在同一页面上

from django.http import HttpResponseRedirect

def your_function(self, request):
    ...
    return HttpResponseRedirect(request.META['HTTP_REFERER'])
META['HTTP\u REFERER']
存储引用页面的url(如果有)。所以你只需重定向到它。但请注意,此标题不是必需的,所以最好使用一些默认的url,以防浏览器不会发送
HTTP\u REFERER
标题。可以这样处理:

return HttpResponseRedirect(request.META.get('HTTP_REFERER', YOUR_DEFAULT_URL))
因此,如果存在,它将重定向到HTTP\u REFERER,如果不存在,它将重定向到您的默认URL

,您可以使用render

from django.shortcuts import render
...
return render(request, 'yourTemplate.html', {'isfav': isfav})

你能指定你的意思吗?现在重定向用户在我的一些页面上有一个“添加到收藏夹”按钮。单击此按钮时,它会将我指向根目录。我不想让它把我带到任何地方。我希望我告诉你。返回一个代码为204的空响应。它不起作用。几天前我尝试了以下方法:
Return redirect(“./”,{})
但它的工作方式与你的答案不一样。但是为什么(是的,我导入了httpresponseirect)奇怪,它在我的项目中起作用。你能具体说明什么是不起作用的,在这个重定向之后发生了什么?请尝试
返回HttpResponseRedirect(“..”)
@Abdullahlike before.redirect me root directory是的,这是重定向到root。请尝试
返回HttpResponseRedirect(request.path\u info)
@Abdullahthis是进入无限重定向循环(我也尝试过,但它应该有效。奇怪)