プロジェクトで webapp2_extras.appengine.auth を使用しています。データストアに User、UserToken、Unique の 3 つのテーブルが作成されます。すべてが正常で、正常に機能しています...
私の質問は: Unique から何かを削除するにはどうすればよいですか?
プロジェクトで webapp2_extras.appengine.auth を使用しています。データストアに User、UserToken、Unique の 3 つのテーブルが作成されます。すべてが正常で、正常に機能しています...
私の質問は: Unique から何かを削除するにはどうすればよいですか?
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) )