django 在 urls.py 中重定向

Posted

技术标签:

【中文标题】django 在 urls.py 中重定向【英文标题】:django redirect inside of urls.py 【发布时间】:2014-08-01 20:55:02 【问题描述】:

我计划在我的 django 项目中包含几个不同的应用程序,每个应用程序都用于我想使用的新技术。在处理每个项目时,我希望将根 URL 路径重定向到我正在处理的项目。

目录结构:

backyard/
    my_project/
        views.py
    backyard/
        urls.py

后院/后院/urls.py:

from django.conf.urls import patterns, include, url
from django.shortcuts import redirect

urlpatterns = patterns('',

    url(r'^$', redirect('my_app/')),
    url(r'^my_project/$', 'my_project.views.homepage'),

)

后院/my_project/views.py

def homepage(request):
    return render_to_response('my_project/index.html', 'data':data)

当我访问 http:machine-name:8000/ 的页面时,我收到一条错误消息,提示 The included urlconf backyard.urls doesn't have any patterns in it 我的 urls.py 中肯定有 URL,这是什么问题?

【问题讨论】:

【参考方案1】:

URLconf 需要将正则表达式映射到视图——redirect 函数不返回视图;相反,它返回一个HttpResponse。您可以查看this question 以获取有关如何直接在 URLconf 中定义重定向的示例。

【讨论】:

对不起,就是这样。我应该把它包括在内。请查看我的编辑。 @jefffabiny 这只会在 import 语句中给你一个语法错误。 正确。为了我自己的利益,我在这里走得太快了……再一次,就像我的文件中的那样。我又改正了。 @jefffabiny 好的,我想这只是一个奇怪的错误消息。如果您在链接的问题中使用RedirectView,它将起作用。

以上是关于django 在 urls.py 中重定向的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 中重定向到外部 URL?

如何在 Django 中重定向(包括 URL 更改)?

如何在views.py中重定向CreateView的URL

如何在 Django 中使用来自 urls.py 的变量重定向 url 模式?

Django:如果在 urls.py 中登录,则重定向到不同的页面

如果在 django 的 urls.py 中找不到,则将任何 url 重定向到 404.html