2015-06-03 46 views
0

我有一个App Engine项目,我在该数据存储中存储用户的电子邮件地址和该用户的特定重定向URL。基于用户的App Engine重定向登录

我想要做的是设置基于这样在登录用户的登录的重定向目的地是什么。

q = Photos.all() 
q.filter("email =", users.get_current_user().email()) 
q = db.GqlQuery("SELECT * FROM Photos " + 
    "WHERE email = :1 ", users.get_current_user().email()) 
for p in q.run(): 

变量p.redirect然后给我我想要的特定用户被重定向到URL 。

下面是我试过,但是这显然不工作,因为用户没有在尚未登录所以我收到以下错误AttributeError: 'NoneType' object has no attribute 'email'

user = users.get_current_user() 

    if user: 
     # User is signed in    
else: 
     # User is not signed in 
     q = Photos.all() 
     q.filter("email =", users.get_current_user().email()) 
     q = db.GqlQuery("SELECT * FROM Photos " + 
      "WHERE email = :1 ", users.get_current_user().email()) 
     for p in q.run(): 
      url = users.create_login_url(p.redirect) 

template_values = { 
    'url': url, 
    } 

任何帮助,将不胜感激。我只在Python & App Engine上工作了几天,所以我可能会错过一些非常明显的东西。

回答

0

我已经加入了新的重定向处理解决此工作,所以登录重定向现在url = users.create_login_url('/authorise')

是在/authorise我运行GQL查询和用户转嫁到他们的目的地。

它的工作原理,但我很想知道是否有更有效的方法。

0

if说法是倒退:

if user: 
    # User is signed in    
    q = Photos.all() 
    q.filter("email =", users.get_current_user().email()) 
    q = db.GqlQuery("SELECT * FROM Photos " + 
     "WHERE email = :1 ", users.get_current_user().email()) 
    for p in q.run(): 
     url = users.create_login_url(p.redirect) 
else: 
    # User is not signed in