使用django重定向错误

时间:2014-03-06 19:20:14

标签: django redirect

我对Django 1.4.3的重定向存在问题

#-*- coding: utf-8 -*-
from django.http import HttpResponse, Http404
from django.shortcuts import redirect

def redirect_test(request):
    print("redirect_test() called.")

    return redirect('redirectionFunc')

def redirectionFunc(request):
    return HttpResponse("You have been redirected.")

我的网址是:

url(r'^redirectTest/$', 'redirect_test')

当我尝试打开时

http://xxx/blogz/redirectTest

我收到以下错误:

NoReverseMatch at /blogz/redirectTest/

Reverse for 'redirectionFunc' with arguments '()' and keyword arguments '{}' not found.

我有终端:

redirect_test() called.

怎么了?

1 个答案:

答案 0 :(得分:0)

'redirect'方法,将python路径带到url或url的名称。

在第一种情况下,如果您的“redirect_func”视图位于app / views.py中,则您的代码应为:

return redirect('app.views.redirect_func')

如果你想在你的网址配置中命名你的网址,例如“redirect_test”,你应该给url方法指定name参数:

url(r'^redirectTest/$', 'app.views.redirect_func', name='redirect_test')

然后,您可以使用您的网址名称调用重定向:

return redirect('redirect_test')

您可以查看有关命名网址here

的文档