次のコードを使用して新しいユーザーを作成します。
form = UserCreationForm(request.POST)
if form.is_valid():
username = form.clean_username()
password = form.clean_password2()
new_user = form.save()
上記は正常に動作します。次に、ユーザーをログインさせ、次のようにメイン ページにリダイレクトします。
user = authenticate(username=username, password=password)
auth.login(request, user)
return HttpResponseRedirect("/dashboard/home")
次のエラー メッセージが表示されます。
'AnonymousUser' object has no attribute 'backend'
少しデバッグすると、'user' が None であることがわかります。ただし、作成したばかりのユーザーにサインインしようとすると機能します。つまり、ユーザーは作成されますが、
user = authenticate(username=username, password=password)
私の登録機能でユーザーを返していません(その後、ログイン機能でまったく同じコードが機能します)。トレースバックには次のものがあります。
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py in get_response
response = callback(request, *callback_args, **callback_kwargs)
それは小さな手がかりを提供します。なんらかのコールバックが発生していますか?
user = authenticate(username=username, password=password)
ユーザーが作成される前に登録中に実際に呼び出されますか? 登録直後にユーザーを認証してリダイレクトするにはどうすればよいですか?