0

ユーザー認証が失敗した場合、インデックス ページへの単純なページ リダイレクトを実装しようとしています。

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

4

1 に答える 1

0
If login fail i mean in else case return render(request, "app/index.html") instead
of return HttpResponse(simplejson.dumps({"login" : "failed"}))

**updated userLogin**

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 render(request, "app/index.html")
于 2013-07-11T17:08:48.523 に答える