【问题标题】:Django redirect URL with parameter, inside urls.py file?在 urls.py 文件中,带有参数的 Django 重定向 URL?
【发布时间】:2016-12-08 02:18:29
【问题描述】:

我使用的是 Django 1.9。有什么方法可以在我的 urls.py 文件中重定向带有参数的 URL?

我想将/org/123/ 之类的网址永久重定向到相应的网址/neworg/123

我知道 how to redirect within a view,但我想知道是否有任何方法可以仅在 urls.py 内部进行。

【问题讨论】:

    标签: python django


    【解决方案1】:

    您可以使用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')
    ]
    

    【讨论】:

    • 奇怪的是,我开始在其他模板中出现错误,例如'&lt;django.views.generic.base.RedirectView object at 0x10b2c00d0&gt;' is not a callable or a dot-notation path - 这绝对是导致问题的重定向,好像我将其注释掉然后错误也消失了。
    • 我错过了as_view,现在已经修复了答案。
    • 谢谢!现在完美运行。
    猜你喜欢
    • 2015-05-06
    • 1970-01-01
    • 2014-08-01
    • 2018-01-25
    • 2011-09-15
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多