にログインしていてもfalseを返すrequest.user.is_authenticated何も返さない保持し、それは私がログインしたことのないような演技を続ける。私はで...はrequest.user.is_authenticated、HTMLテンプレートでは
ログインしました
:これは、ログインした後、それがこのアカウントViews.pydef log_in(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
user = form.cleaned_data['username']
pword = form.cleaned_data['password']
user = authenticate(username = user, password = pword)
if user is not None:
# return render(, 'home.html')
login(request, user)
return HttpResponseRedirect('/home/')
else:
return render(request, 'login.html', { 'logform': form, 'error': True})
else:
if request.user.is_authenticated():
return HttpResponseRedirect('/home/')
else:
form = LoginForm()
return render(request, 'login.html', { 'logform':form,})
これはhome.htmlドキュメントです
@login_required
def home(request):
print("USER?: " + str(request.user))
print(request.user.is_authenticated)
if not request.user.is_authenticated():
return render_to_response('index.html')
return render_to_response('home.html', request)
をhome.htmlに戻り、ホームViews.pyです
{{ user.username }}
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
<p>Welcome, new user. Please log in.</p>
{% endif %}
if/elseステートメントを出すと何も表示されません。しかし、ログイン機能では、user.is_authenticated
が印刷され、ログインしたユーザー名が表示されます。また、ログインしているかログインしていない場合、HTML文書には他に移動します。
ヘルプは素晴らしいでしょう!
'request.user.is_authenticated()'を実行する前に 'request.user'を表示してください。それが 'AnonymousUser'かどうか確認してください。あなたはどんなクッキーを使っていますか? – scriptmonster
はい私はクッキーを使用しています。ログインする前に、 'AnonymousUser'を表示します。ログイン後、プリントアウトされます: 'JohnJoe'。 – DjangoHelpUser
私はそれがクッキーに関するものだと信じています。もしあなたがクッキーを設定していて、 '['、 ']'のような特別な文字が含まれていると、djangoはいくつかのクッキーの読み込みをクラッシュさせます。私はbase64にそのようなクッキーをエンコードするよう助言します。 – scriptmonster