0

これが、user_id()をデータストアに配置する必要がある理由です。

ユーザーが自分の電子メールアドレスを変更しても、データストアのユーザー値は更新されません。これは、将来のリリースで修正される可能性があります。それまでは、ユーザー値のuser_id()をユーザーの安定した一意の識別子として使用できます。

http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html#users_User

データストア内では、値は電子メールアドレスにユーザーの一意のIDを加えたものに等しくなります。ユーザーがメールアドレスを変更した場合、新しいユーザー値は、データストアクエリで、またはアプリで比較したときに、元のユーザー値と等しくなりません。アプリに変更されない安定した識別子が必要な場合は、ユーザー値とは別に一意のIDを保存できます。

http://code.google.com/appengine/docs/python/users/userobjects.html

どうすればいいのですか?

そして、どうやって知ったのですか(またはどこで調べましたか?)

4

1 に答える 1

0

通常の答えは「プロパティなし」です。安定した識別子が必要な場合は、おそらくそれによってユーザーを検索しているためです。その場合は、次のようにエンティティのキ​​ー名として使用する必要があります。

class UserInfo(db.Model):
  is_admin = db.BooleanProperty(required=True, default=False)

user_info = UserInfo.get_or_insert(users.get_current_user().user_id())

ユーザーのIDを他の場所に保管する必要がある場合は、db.StringPropertyを使用してユーザーIDを保管できます。

于 2009-10-20T13:49:02.110 に答える