Python Django:如何无处返回?
(很抱歉我的英语不好) 你好,伙计。我在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
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是进入无限重定向循环(我也尝试过,但它应该有效。奇怪)