4

我在我的项目中使用 webapp2_extras.appengine.auth,它在数据存储区中创建了 3 个表:User、UserToken 和 Unique。一切都很好,并且工作正常......

我的问题是:如何从 Unique 中删除某些内容?

4

1 回答 1

5

我很难找到要删除的确切内容,因为 Unique 模型不包含对 User 的引用。这是解决方案(参考文档):

from google.appengine.ext import ndb
from webapp2_extras import auth

class SomeUserHandler():
  def forget_user(self):
    auth = auth.get_auth()
    user_dict = auth.get_user_by_session()
    user = auth.store.user_model.get_by_id(user_dict['user_id'])

    # from webapp2_extras.appengine.auth.models.User
    # http://webapp-improved.appspot.com/_modules/webapp2_extras/appengine/auth/models.html#User
    # 
    # def add_auth_id(self, auth_id):
    #   ...
    #   unique = '%s.auth_id:%s' % (self.__class__.__name__, auth_id)
    #   ...
    Unique.delete_multi( map(lambda s: 'User.auth_id:' + s, user.auth_ids) )
于 2013-02-17T02:49:03.043 回答