login()
とを使用してログインページを作成しようとしていますが、ユーザー名とパスワードを送信すると、間違ったパスワードやユーザー名を送信した場合と同じようにauthenticate()
、ユーザーが認証されません( )。is_authenticated = False
views.py:
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from django.template import RequestContext
from whitesnake.forms import RegistrationForm, LoginForm
from django.contrib.auth.models import User
from whitesnake.models import Whitesnake
from django.contrib.auth import authenticate, login, logout
def WhitesnakeLogin(request):
if request.user.is_authenticated():
return render_to_response('index.html', None, context_instance = RequestContext(request))
if request.method =='POST':
login_form = LoginForm(request.POST)
if login_form.is_valid():
username = login_form.cleaned_data['username']
password = login_form.cleaned_data['password']
whitesnake = authenticate(username = username, password = password)
if whitesnake is not None:
login(request, whitesnake)
return HttpResponseRedirect('/admin/')
else:
login_form = LoginForm()
context = {'login_form' : login_form}
return render_to_response('index.html', context, context_instance = RequestContext(request))
else:
login_form = LoginForm()
context = {'login_form' : login_form}
return render_to_response('index.html', context, context_instance = RequestContext(request))
else:
login_form = LoginForm()
context = {'login_form' : login_form}
return render_to_response('index.html', context, context_instance = RequestContext(request))
forms.py:
from django import forms
from django.forms import ModelForm
from django.contrib.auth.models import User
from whitesnake.models import Whitesnake
class LoginForm(forms.Form):
username = forms.EmailField(label=(u'Username'))
password = forms.CharField(label=(u'Password'), widget = forms.PasswordInput(render_value = False))
私はすでに登録ページを作成しました。使用するユーザー名とパスワードが正しく、MySQLにすでに保存されていることを確認します。Whitesnakeはユーザーアプリの名前です