2010-03-24 2 views
2

Каков наилучший способ сохранить профиль пользователя с помощью Google App Engine (Python)? Что я сделал, чтобы решить эту проблему, это создать еще одну модель, с UserProperty, но запрашивает профиль от пользователя, я должен сделать что-то вроде этого:добавить свойства пользователям google app engine

if user: 
    profile = Profile.all().filter('user =', user).fetch(1) 
    if profile: 
     property = s.get().property 

Любые идеи?

ответ

4

Если вы укажете user_id пользователя key_name объекта профиля пользователя, вы можете получить его с помощью Profile.get_by_key_name(), который будет быстрее, чем запрос, а затем выборка.

Memcaching, включая user_id как часть ключа, позволит еще быстрее получить доступ к профилю.

1

Нет, это довольно правильный подход (хотя, возможно, вы захотите также сохранить некоторые из этих профилей в memcache, конечно ;-). Это будет быстро, так как на поле user будет указатель. Вы не можете изменить модель пользователя, поставляемую Google, если это то, о чем вы просите.

1

Это не решение, а предупреждение.

Пользовательское значение не является уникальным и стабильным идентификатором для пользователя. И свойство user_id существует только для пользователей Google, а не для OpenId. Поэтому не доверяйте этому решению.