ログインしません、私はそうのようなログインフォームがあります。ジャンゴAuthenticationForm - ユーザーが
login_form.html
{% extends "base.html" %}
{% block title %}Login{% endblock %}
{% block content %}
<h2>Login</h2>
<form action="/accounts/login/" method="post">
{% csrf_token %}
{{form.as_p}}
<input type="submit" value="Login" />
</form>
{% endblock %}
そうのようなログインの完全なページ:
login_complete.html
を{% extends "base.html" %}
{% block title %}You are logged in{% endblock %}
{% block content %}
<h2>Thank you for logging in</h2>
{% if user.is_authenticated %}
<p>foo</p>
{% endif %}
{% endblock %}
ログインビュー:
def login(request):
if request.method == "POST":
form = AuthenticationForm(data=request.POST)
if form.is_valid():
auth.login(request, form.get_user())
return HttpResponseRedirect("/accounts/login/complete")
else:
form = AuthenticationForm()
token = {}
token.update(csrf(request))
token["form"] = form
return render_to_response("registration/login_form.html", token)
ユーザーはログインしていません。ユーザー名とパスワードは正しいです(無効な組み合わせで試してみましたが、その場合はログインページにとどまりエラーが表示されます)メソッド(auth.loginで、私のログイン()は偶然ではありません)。
編集:私のlogin()メソッドが呼び出されている、それはまた、正しく私にログイン完全なページを示しているが、
{% if user.is_authenticated %}
<p>foo</p>
{% endif %}
EDIT2:
に {%をuser.is_authenticated場合%} を変更します{% if request.user.is_authenticated %}
も機能しません。
私は間違っていますか?
テンプレートにユーザーオブジェクトを渡していない場合は、 '{%if request.user.is_authenticated%}'を試してください。 – Darshit
こんにちは、ありがとうございます。 – Lomtrur
Djangoには、[認証ビューとフォーム](https://docs.djangoproject.com/en/1.10/topics/auth/default/#module-django.contrib.auth.views)が付属しています。可能であれば、自分で作成するのではなく、組み込みのログインビューとフォームを使用する必要があります。 – Alasdair