Django HttpResponseRedirect找不到url

时间:2013-10-08 09:54:20

标签: django

这是我的urls.py:

urlpatterns = patterns('horizon.views',
url(r'home/$', 'user_home', name='user_home'),
url(r'register/$', Register.as_view(), name='register'),
url(r'success/$', Success.as_view(), name='success')
)

这是我的views.py:

 class Register(forms.ModalFormView):
    template_name = 'auth/test.html'
    form_class = CreateUser
    success_url = reverse_lazy('login')

 class Success(generic.TemplateView):
     template_name = 'auth/success.html'

我尝试使用:

 return HttpResponseRedirect('success') 

 return HttpResponseRedirect(reverse('success'))

但它无法呈现success.html。谁能告诉我为什么?非常感谢!

1 个答案:

答案 0 :(得分:1)

请发布您遇到的确切错误。

在执行HttpResponseRedirect时,最好不要像'/ success /'那样对网址进行硬编码。

而是这样做:

from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect


....
    # Here 'success' is the URL name you have given.
    return HttpResponseRedirect(reverse('success'))

这样,如果您更改成功网址(不是您应该...),它会自动更新整个应用,而不必返回并更改所有硬编码值。

在Django Reverse resolution of URLs文档中了解更多相关信息。