[英]How to redirect to external URL in Django?
我認為這應該很容易,但我無法弄清楚。 我正在嘗試編寫一個退出視圖。 我正在收到一個獲取請求。 通過 urls.py,我呈現了我的選擇退出視圖。 在此視圖中,我在數據庫中為用戶保存了一些參數,然后我想將用戶重定向到外部 URL。 我試過:
return redirect('http://stackoverflow.com/')
來自Django 文檔。 但是,盡管參數按預期保存在數據庫中,但選擇退出視圖會呈現訓練模板而不是返回重定向。 我的代碼如下:
def optout(request):
if (('REMOTE_USER' in request.META and request.META['REMOTE_USER'] != "") or
(request.session.get('userid', False) and request.session['userid'] != "")):
if ('REMOTE_USER' in request.META and request.META['REMOTE_USER'] != ""):
userid = request.META['REMOTE_USER']
if (request.session.get('userid', False) and request.session['userid'] != ""):
userid = request.session['userid']
user = User.objects.get(username=userid)
user.optout = True
user.postpone = False
user.save()
return redirect('http://stackoverflow.com/')
context = { 'userid': "" }
return render(request, 'games/Training.html', context)
任何幫助都受到高度贊賞。
是的, return redirect('http://stackoverflow.com/')
是正確的方法。
如果您執行以下操作,您可以確認這是一種重定向的工作方法。
from django.shortcuts import redirect
def optout(request):
return redirect("http://stackoverflow.com/")
您的條件語句不能被捕獲。
使用類HttpResponseRedirect
from django.http import HttpResponseRedirect
def out(request):
return HttpResponseRedirect("http://google.com")
或者:
使用類HttpResponse
from django.http import HttpResponse
def out(request):
response = HttpResponse("", status=302)
response['Location'] = "http://google.com"
return response
筆記:
最后一個對於從網站重定向到移動(Android/Iphone)應用程序很有用。 其中位置是
scheme://host
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.