在Django中,如何直接从URL执行简单的重定向.皮耶?自然地,我是一个组织良好的人,支持干燥原则,所以我希望根据它的命名url模式来获得目标,而不是硬编码url.
在Django中,如何直接从URL执行简单的重定向.皮耶?自然地,我是一个组织良好的人,支持干燥原则,所以我希望根据它的命名url模式来获得目标,而不是硬编码url.
如果您使用的是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.设置显式值以使此警告静默.