直接从 django 中的 urls.py 重定向到命名的 url 模式? [英] Redirect to named url pattern directly from urls.py in django?

查看:29
本文介绍了直接从 django 中的 urls.py 重定向到命名的 url 模式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 Django 中,如何直接从 urls.py 进行简单的重定向?当然,我是一个组织良好的人,喜欢 DRY 原则,所以我想根据它的命名 url 模式来获取目标,而不是对 url 进行硬编码.

In Django, how can I do a simple redirect directly from urls.py? Naturally I am a well organized guy, favoring the DRY principle, so I would like to get the target based on it's named url pattern, rather than hard coding the url.

推荐答案

如果您使用的是 Django 1.4 或 1.5,您可以这样做:

If you are on Django 1.4 or 1.5, you can do this:

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 或更高版本,您可以这样做:

If you are on Django 1.6 or above, you can do this:

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 关键字参数,您可能会看到以下警告:

In Django 1.9, the default value of permanent has changed from True to False. Because of this, if you don't specify the permanent keyword argument, you may see this warning:

RemovedInDjango19Warning:在 Django 1.9 中,'RedirectView.permanent' 的默认值将从 True 变为 False.设置一个明确的值来消除这个警告.

RemovedInDjango19Warning: Default value of 'RedirectView.permanent' will change from True to False in Django 1.9. Set an explicit value to silence this warning.

这篇关于直接从 django 中的 urls.py 重定向到命名的 url 模式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆