django - 从 RedirectView 重定向到包含的 URLS

标签 django

假设我在我的 Django 1.6 项目中有这样一个 URL 设置:

urlpatterns = patterns('',
    url(r'^some-path/', include('someapp.urls')),
    url(r'^$', RedirectView.as_view(url='some-path/', permanent=False)),
)

…但我想改为将“some-path”更改为“changed-path”,并且在这个过程中意识到我已经将它硬编码在一个额外的地方:RedirectView 设置!

是否有正确的方法来做这样的事情,反转到一个包含的 URL 包?

# NOT WORKING! Django ignores `name=` when using `include()`
urlpatterns = patterns('',
    url(r'^changed-path/', include('someapp.urls'), name='foo'),
    url(r'^$', RedirectView.as_view(pattern_name='foo', permanent=False)),
)

最佳答案

首先,您必须从 someapp 转到您的 urls.py 文件并获取您的基本 url 的名称。 让我们假设它是这样的:

# someapp/urls.py
urlpatterns = patterns(
    'someapp.views',
    url(r'^$', 'your view', name='foo'),
    ...
)

现在在您的主 urls 文件中,您可以编写如下所有内容:

# WORKING! Because Django likes namespaces 
urlpatterns = patterns('',
    url(r'^changed-path/', include('someapp.urls', namespace='bar')),
    url(r'^$', RedirectView.as_view(pattern_name='bar:foo', permanent=False)),
)

关于django - 从 RedirectView 重定向到包含的 URLS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25537502/

相关文章:

python - 如何在Django网页中显示excel文件

python - 在 django 中管理 redis 连接的正确方法

python - settings.py 中的 Django DATE_FORMAT 忽略格式或被覆盖

python - 如何从 django 的 db 模型中获取字段类型字符串

python - timedelta() Python Django 的格式显示

python - Django 自定义查询集和导出

django - 无法将 Nginx 反向代理连接到 Django 容器(Docker)中的 Gunicorn

python - Django : migration success but not creating new table

python - 将 HTTP_USER_AGENT 添加到 Django RequestFactory 请求?

python - 创建成员(member) ID 的下拉菜单