redirect()
redirect(to, permanent=False, *args, **kwargs)[source]
将HttpResponseRedirect
返回给传递的参数的相应URL
。
这个参数可能是:
- 一个模型:模型的
get_absolute_url()
函数将被调用。 - 视图名称,可能使用参数:
reverse()
将用于反向解析名称。 - 一个绝对的或相对的
URL
,将按原样用于重定向位置。
默认情况下会发出临时重定向; pass permanent = Tru
发出永久重定向。
例子
您可以通过多种方式使用redirect()
函数。
- 通过一些对象; 将调用该对象的
get_absolute_url()
方法来找出重定向URL
:
from django.shortcuts import redirect
def my_view(request):
...
object = MyModel.objects.get(...)
return redirect(object)
- 通过传递视图的名称和可选的一些位置或关键字参数; 该
URL
将使用reverse()
方法进行反向解析:
def my_view(request):
...
return redirect('some-view-name', foo='bar')
- 传递一个硬编码的网址重定向到:
def my_view(request):
...
return redirect('/some/url/')
默认情况下,redirect()返回一个临时重定向。 所有上述形式都接受永久参数; 如果设置为True,则将返回永久重定向:
def my_view(request):
...
object = MyModel.objects.get(...)
return redirect(object, permanent=True)