OpenIDを使用してユーザーが既存のアカウントでログインできるようにするGoogleAppEngineのPythonフェデレーションログインを使用しています。ユーザー名や短い略歴など、ユーザーに関する追加情報を入力するページにユーザーを誘導してほしい。ログイン後、ユーザーはこのハンドラーに移動します。ユーザー名がある場合はこのページにとどまり、それ以外の場合は/profileにリダイレクトします。
class Tester(BlogHandler):
def get(self):
global visits
logout = users.create_logout_url(self.request.uri)
user = users.get_current_user()
if user:
currentregistereduser = None
try:
user_db_qry = User.query(User.theid == user.federated_identity())
user_db_list = user_db_qry.fetch(1)
#this is the line that is causing the error
currentregistereduser = user_db_list[0]
except IndexError:
#I could do something here to fix it but I am not sure what
if currentregistereduser:
if not currentregistereduser.username:
self.redirect("/profile")
else:
self.render("tester.html", user=user, logout=logout)
問題は、新しいユーザーでcurrentregistereduser = user_db_list [0]を実行しようとすると、IndexErrorが発生することですが、既存のユーザーでは正常に機能します。誰かがこれを引き起こしている可能性があることを知っていますか?/ profileページで同じことをしてユーザーを特定する必要があるので、そこにリダイレクトするだけではあまり役に立ちません。