0

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 アプリ エンジンでこれを実行しようとしています。

4

1 に答える 1

0

申し訳ありませんが、Google App Engine の上で Django の認証モジュールを使用することはできません。Django は独自の特別なデータベース バックエンドを使用します。これは google-app-engine のものに似ていますが、ドロップイン互換性はありません。

GAE で認証を行いたい場合は、google-app-engine の方法で行う必要があります: http://code.google.com/appengine/docs/python/users/

于 2010-12-29T05:01:40.560 に答える