0

これは私の 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 をレンダリングすることはできません。誰が理由を教えてくれますか? どうもありがとう !

4

1 に答える 1

1

発生している正確なエラーを投稿してください。

HttpResponseRedirect'/success/' のような URL をハードコーディングしないことをお勧めします。

代わりにこれを行います:

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


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

このように、成功 URL を変更すると (そうすべきではありません..)、ハードコードされたすべての値に戻って変更するのではなく、アプリ全体で自動的に更新されます。

詳細については、Djangoの URL の逆方向解決に関するドキュメントを参照してください。

于 2013-10-08T09:59:31.790 に答える