直接从Django中的urls.py重定向到命名的url模式?
在Django中,如何直接从urls.py进行简单重定向?我自然是一个井井有条的人,赞成DRY原理,所以我想基于它的命名url模式获取目标,而不是对URL进行硬编码。
回答:
如果你使用的是Django 1.4或1.5,则可以执行以下操作:
from django.core.urlresolvers import reverse_lazyfrom 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 RedirectViewurlpatterns = 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