redirect()

redirect()函数返回一个HttpResponseRedirect对象,这个对象代表一个重定向的URL,其函数接口说明如下:

redirect (to  [  , permanent = False  ]  , *args , **kwargs )

其中permanent代表这个重定向是临时的还是永久的,默认值为False,表示是一个临时的重定向。其他的参数可以是:
1.一个模型类:将调用这个模型类的 get_absolute_url() 方法得到URL后进行重定向;
2.一个视图函数的名称,及其相应的参数:将调用视图函数的urlresolvers.reverse()方法来得到URL并进行重定向;
3.一个URL对象:用来进行重定向。

下面举几个例子:
1.首先,可以给redirect方法传递一个模型对象作为参数,它会调用这个模型对象的get_absolute_url()来得到URL进行重定向:

def my_view (request ):
    ...
     object  = MyModel. objects. get (... )
     return redirect ( object )

2.其次,可以给redirect方法传递一个视图函数名称作为参数,来进行URL重定向,同时还可以给这个视图函数传递参数:

def my_view (request ):
    ...
     return redirect (’some-view-name’ , foo =’bar’ )

3.最后,我们还可以给redirect函数传递一个实际的URL路径(完整路径或者相对路径):

#相对路径
def my_view (request ):
    ...
     return redirect (’/some/url/’ )
#完整路径:
def my_view (request ):
    ...
     return redirect (’http://www. onepub. net/’ )

4.缺省情况下permanent=False,表示是一个临时的重定向,我们可以把这个参数设置为True,让其变成一个永久的重定向:

def my_view (request ):
    ...
     object  = MyModel. objects. get (... )
     return redirect ( object , permanent = True )

转载于:https://my.oschina.net/u/240562/blog/71057

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值