カスタムのログイン/ログアウト機能を実装しようとしています。私の要件は、組み込みの django ログイン機能とは少し異なります。したがって、データベースに値 0 / 1 を入力して、ユーザーがログインしているかどうかを確認できるように、この機能を実装する必要があります。私はそれのためのブール値を持っています。ここでの質問は本当に次のとおりです。ユーザーオブジェクト/ユーザーがログインしていることを示す変数 (私の場合users.is_logged_in = True
:) をすべての html テンプレートに渡して、ユーザー (および私のアプリケーション) がそれを認識できるようにするにはどうすればよいですか?また、すべての HTML ページのリンクをクリックしてログアウトできるはずです。ユーザーが正常にログインしたときに、プレースホルダーのようなものを作成して作成できるグローバル テンプレートはありますか? 私のコードは次のとおりです。
def checkIfUserIsValid(request, template_name='appCenter.html'):
email = str(request.POST.get('email','')).strip()
password = str(request.POST.get('password','')).strip()
try:
users = Users.objects.get(email = email, password = password)
users.is_logged_in = True
users.save()
return direct_to_template(request, template_name, context_instance=RequestContext(request))
except Users.DoesNotExist:
incorrectUserOrPassError = "Incorrect Username or Password. Please try again."
return render_to_response('index.html', {'incorrectUserOrPassError':incorrectUserOrPassError},
context_instance=RequestContext(request))
def logOutUser(request, template_name='index.html'):
return direct_to_template(request, template_name, context_instance=RequestContext(request))
PS: render() メソッドを調べました..
return render(request,'appCenter.html',{'users':users})
このようなことをして、テンプレートをグローバル テンプレートなどとして利用できますか? しかし、私が見る問題は、ユーザーが認証されるとすぐに、ユーザーを appCenter.html にリダイレクトする必要があることです。