我对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.
怎么了?
答案 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
的文档