直接从Django中的urls.py重定向到命名的url模式?

在Django中,如何直接从urls.py进行简单重定向?我自然是一个井井有条的人,赞成DRY原理,所以我想基于它的命名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。设置一个明确的值可使此警告静音。

以上是 直接从Django中的urls.py重定向到命名的url模式? 的全部内容, 来源链接: utcz.com/qa/397279.html

回到顶部