googleアカウント/open_idアカウントのラッパークラスを追加して、親の関係を使用できるようにすることはできませんか?次のようなもの:
UserWrapper(db.Model):
user = db.UserProperty()
UserSettings(db.Model):
...
# New User
user = users.get_current_user()
new_user_settings = UserSettings(...)
new_user_wrapper = UserWrapper(key=user.nickname(),
parent=new_user_settings,
user=user)
# Login Existing User
user = users.get_current_user()
user_wrapper = UserWrapper.get_by_key_name(user.nickname())
user_settings = user_wrapper.parent()
ユーザーが自分の電子メールアドレスを変更したい場合は、古い電子メールでUserSettingsを検索し、関連付けられたUserWrapperを削除し、新しい電子メールアドレス用の新しいUserWrapperを作成して、古いUserSettingsに関連付けます。
複数の電子メールアドレスを同じアカウントに関連付けることが重要な場合に備えて、UserSettingsをUserWrapperの親にしたことに注意してください。