ユーザー認証が失敗した場合、インデックス ページへの単純なページ リダイレクトを実装しようとしています。
2 つのパスがあるとします。
www.xyz.com/app/
www.xyz.com/app/user
1 つ目はインデックス ページをレンダリングし、2 つ目はログイン成功時の承認済みユーザーのランディング ページです。
私のviews.py
ファイルには、
def index(request):
return render(request, "app/index.html")
def userLogin(request):
loginUser = authenticate(username = request.POST["username"], password = request.POST["password"])
if loginUser is not None:
if not loginUser.is_active:
loginUser.is_active = True
loginUser.save()
login(request, loginUser)
return HttpResponse(reverse(user))
else:
return HttpResponse(simplejson.dumps({"login" : "failed"}))
def userLogout(request):
logout(request)
return HttpResponseRedirect(reverse(index))
とurls.py
urlpatterns = patterns("",
url(r'^$', views.index, name = "index"),
url(r'^user/$', views.user, name = "user"),
url(r'^registerNewUser/$', views.registerNewUser),
url(r'^userLogin/$', views.userLogin),
url(r'^user/userLogout/$', views.userLogout),
)
ログアウト機能は Ajax POST リクエストを介してアクセスされ、ログには次のように表示されます
[11/Jul/2013 09:08:00] "POST /app/user/userLogout/ HTTP/1.1" 302 0
[11/Jul/2013 09:08:00] "GET /app/ HTTP/1.1" 200 5039
しかし、インデックスページが読み込まれていません。ただし、ページを更新すると、失敗時に同じ呼び出しとパラメーターrequest.user.is_authenticated()
をトリガーする条件付き呼び出しにより、インデックス ページが読み込まれます。HttpResponseRedirect