1

djangoの組み込みAuthコンポーネントで提供されるものを超えてユーザー情報を保持するために作成されたUserProfileモデルにデータを追加しようとすると、少し壁にぶつかりました。

私の質問は、UserProfileを作成するために、登録したばかりのユーザーのインスタンスを取得するにはどうすればよいですか?私はそれが以下のようなものになるだろうと思いました:

# Registration form validation etc. is complete
cd = form.cleaned_data
user = User.objects.create_user(username=cd['username'], password=cd['password'])
new_user = user.save() # hoping this returns an instance of the user?
activation_key = some_random_generator()
new_profile = UserProfile(user=new_user, token=activation_key)
new_profile.save()

...しかし、new_userはNoneとして返されます。ユーザー名/パスワードに基づいてデータベースを再クエリするのではなく、登録したばかりのユーザーにアクセスする簡単な方法が必要だと思いますか?

私はそれが十分に明確であることを願っています、どんな助け/ガイダンスにも感謝します。

4

1 に答える 1

1

私自身の問題を解決しました。python/djangoを学ぶのに時間がかかる。

user.save()が呼び出されると、データベースの挿入後にユーザーオブジェクトが新しい情報で更新されます。つまり、新しく生成されたuser.idです。したがって、このユーザーオブジェクト自体を実際にUserProfile()に渡すことができます。

于 2010-09-09T11:50:08.190 に答える