我正在使用 Google App Engine Python Federated Login,它使用 OpenID 让用户使用现有帐户登录。我希望用户被引导到一个页面,在那里他们填写一些关于他们的额外信息,例如用户名和简短的简历。现在登录后用户被定向到这个处理程序,然后如果他们有用户名,我希望他们留在这个页面上,否则我希望他们重定向到 /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 页面上做同样的事情来识别用户,所以我只是将它们重定向到那里并没有多大帮助。