Какой тип свойства я использую, чтобы поместить user_id() пользователя в хранилище данных?

Вот почему мне нужно поместить user_id() в хранилище данных:

Значение пользователя в хранилище данных не обновляется, если пользователь меняет свой адрес электронной почты. Это может быть исправлено в будущем выпуске. До тех пор вы можете использовать user_id() значения User в качестве стабильного уникального идентификатора пользователя.

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

В хранилище данных это значение равно адресу электронной почты и уникальному идентификатору пользователя. Если пользователь изменит свой адрес электронной почты, новое значение пользователя не будет равно исходному значению пользователя в запросах к хранилищу данных или при сравнении приложением. Если вашему приложению нужен стабильный идентификатор, который не меняется, вы можете хранить уникальный идентификатор отдельно от значения пользователя.

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

Как это сделать?

А как вы узнали (или где вы это искали?)


person Elliot    schedule 20.10.2009    source источник


Ответы (1)


Обычный ответ — «нет свойства». Если вам нужен стабильный идентификатор, возможно, это потому, что вы ищете пользователей по нему, и в этом случае вы должны использовать его в качестве имени ключа для объекта, например:

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

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

Если вам действительно нужно сохранить идентификатор пользователя в другом месте, вы можете использовать db.StringProperty для хранения идентификатора пользователя.

person Nick Johnson    schedule 20.10.2009