Django の組み込み認証モジュールを使用しようとしています。私が取り組んでいるサイトでは、通常の英数字フィールドだけでなく、電子メール アドレスをログイン名として使用したいと考えています。これを行うために、すべての文字列フィールドを電子メール フィールドに変更し、最大長を 30 から 320 に変更しました。登録コードは正常に機能しているように見えますが、ログイン コードは機能していないようです。これが私が今使っているものです:
def login(request):
if request.method == 'POST':
form = AuthenticationForm(request.POST)
if form.is_valid():
return HttpResponse("valid")
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return HttpResponseRedirect("/")
# Redirect to a success page.
else:
return HttpResponse("Disabled Account")
# Return a 'disabled account' error message
else:
return HttpResponse("Invalid Login")
# Return an 'invalid login' error message.
else:
return HttpResponse("%s" % repr(form.errors))
else:
form = AuthenticationForm()
return render_to_response("login.html", {'form': form, }, context_instance=RequestContext(request))
何を送信しても、form.is_valid() は FALSE を返しますが、form.errors は空です。何が間違っているのでしょうか?すべてを電子メールのプロパティに変更したと思うので、それだけではないと思います。また、何かが変更された場合に備えて、 djangoappengineを使用して Google アプリ エンジンでこれを実行しようとしています。