Answers:
如果您使用的是Django 1.4或1.5,则可以执行以下操作:
from django.core.urlresolvers import reverse_lazy
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-page/$', RedirectView.as_view(url=reverse_lazy('my_named_pattern'), permanent=False)),
...
如果您使用的是Django 1.6或更高版本,则可以执行以下操作:
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-page/$', RedirectView.as_view(pattern_name='my_named_pattern', permanent=False)),
...
在Django 1.9中,的默认值permanent
已从True更改为False。因此,如果您未指定permanent
关键字参数,则可能会看到以下警告:
RemovedInDjango19Warning:在Django 1.9中,“ RedirectView.permanent”的默认值将从True更改为False。设置一个显式值可使此警告静音。
(r'^.*/$', RedirectView.as_view(url='http://newurl.com')),
这对我有用。
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-page/$', RedirectView.as_view(url='/')),
...
在上面的示例中'/'
,它将重定向到索引页面,您还可以在其中添加任何网址格式。
RedirectView
有permanent=True
默认旧版本的Django的,并permanent=False
作为默认的Django版本> = 1.9。
对于Django v2 +
from django.contrib import admin
from django.shortcuts import redirect
from django.urls import path, include
urlpatterns = [
# this example uses named URL 'hola-home' from app named hola
# for more redirect's usage options: https://docs.djangoproject.com/en/2.1/topics/http/shortcuts/
path('', lambda request: redirect('hola/', permanent=False)),
path('hola/', include("hola.urls")),
path('admin/', admin.site.urls),
]
permanent=False
是默认的。有关详细信息,请阅读: docs.djangoproject.com/en/2.1/topics/http/shortcuts/#redirect developer.mozilla.org/en-US/docs/Web/HTTP/...