【发布时间】:2016-12-08 02:18:29
【问题描述】:
我使用的是 Django 1.9。有什么方法可以在我的 urls.py 文件中重定向带有参数的 URL?
我想将/org/123/ 之类的网址永久重定向到相应的网址/neworg/123。
我知道 how to redirect within a view,但我想知道是否有任何方法可以仅在 urls.py 内部进行。
【问题讨论】:
我使用的是 Django 1.9。有什么方法可以在我的 urls.py 文件中重定向带有参数的 URL?
我想将/org/123/ 之类的网址永久重定向到相应的网址/neworg/123。
我知道 how to redirect within a view,但我想知道是否有任何方法可以仅在 urls.py 内部进行。
【问题讨论】:
您可以使用RedirectView。只要新旧 url 模式的 args 和 kwargs 相同,就可以使用 pattern_name 指定重定向到的 url 模式。
from django.views.generic.base import RedirectView
urlpatterns = [
url(r'^neworg/(?P<pk>\d+)/$', new_view, name='new_view'),
url(r'^org/(?P<pk>\d+)/$', RedirectView.as_view(pattern_name='new_view'), name='old_view')
]
【讨论】:
'<django.views.generic.base.RedirectView object at 0x10b2c00d0>' is not a callable or a dot-notation path - 这绝对是导致问题的重定向,好像我将其注释掉然后错误也消失了。
as_view,现在已经修复了答案。