直接从 django 中的 urls.py 重定向到命名的 url 模式? [英] Redirect to named url pattern directly from urls.py in django?
问题描述
在 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屋!