0

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はユーザーアプリの名前です

4

0 に答える 0