Djangoには様々なリダイレクト方法があります.

4750 ワード

本論文では、HttpRespnseRedirect、redirect、reverse、および設定ファイルにURLを設定するなどのリダイレクト方法について説明します.
本論文では、Django 1.8.2使用シーンを使用して、例えばフォーム1にデータを提出した後、別の指定されたページに戻る必要がある場合、リダイレクト方法を使用することができる.
一、HttpRespnseRedirect●Fhao The first argment to the construct is required–the path to redirect to.This can be a fully qualified URL or an absoute path with no domainを使用します.」パラメータは絶対パスと相対パスであることができます.
from django.http import HttpResponseRedirect  

@login_required  
def update_time(request):  
    #    OR      
    return HttpResponseRedirect('/')  #        
#       
return HttpResponseRedirect('/commons/index/?message=error')
二redirectとreverse
from django.core.urlresolvers import reverse  
from django.shortcuts import redirect  
#https://docs.djangoproject.com/en/1.8.2/topics/http/shortcuts/  

@login_required  
def update_time(request):  
    #          
    return redirect(reverse('test.views.invoice_return_index', args=[]))  #   index    

redirect   HttpResponseRedirect   ,          url   /..index/?a=add
reverse      views             ,args url    。
三、その他
#         url   
from django.views.generic.simple import redirect_to 
 url    (r'^test/$', redirect_to, {'url': '/author/'}), 

#        session     
request.session['error_message'] = 'test'  
redirect('%s?error_message=test' % reverse('page_index'))  
#         ,       url。
四番目
#   ,        ,         views  url         ,        。
#  view     baseinfo_account,      url(  view   blance_account)       baseinfo_account。
#url    :
urlpatterns = patterns('',  
    url(r'^index/', 'account.views.index_account'),  
    url(r'^blance/', 'account.views.blance_account'),  
)  
# views.py
@login_required  
def index_account(request, args=None):#     url          ,        if args:  
        print args  
    return render(request, 'accountuserinfo.html', {"user": user})  


@login_required      
def blance_account(request):  
    return index_account(request, {"name": "orangleliu"}) 
#   :
#1      /index      (  ok)
#2    /blance            /index  ,       (  ok,   /index         url   /blance)
#             。