Я думаю, что неправильно использую API пользователей:
class BaseHandler(webapp.RequestHandler):
user = users.get_current_user()
def header(self, title):
if self.user:
render('Views/link.html', self, {'text': 'Log out', 'href': users.create_logout_url('/')})
else:
render('Views/link.html', self, {'text': 'Log in', 'href': users.create_login_url('/')})
link.html
<p>
<a href="{{href}}">{{text}}</a>
</p>
Иногда это работает, иногда нет. Я нажму ссылку «Выйти» 10 раз подряд и перезагрузлю страницу, и она перенаправит меня на страницу '/'
. Тогда, как ни странно, однажды я выйду из системы. Вход в систему не выполняется практически таким же образом. Что здесь происходит?
Решено - Это работает:
class BaseHandler(webapp.RequestHandler):
def __init__(self):
self.user = users.get_current_user()
def header(self, title):
if self.user:
render('Views/message.html', self, {'msg': "Welcome, %s" % self.user.nickname()})
render('Views/link.html', self, {'text': 'Log out', 'href': users.create_logout_url('/')})
else:
render('Views/link.html', self, {'text': 'Log in', 'href': users.create_login_url('/')})
Похоже, я могу иметь переменные экземпляра, ссылаясь на них как self.var_name
в функции, но никогда не объявляя их на уровне класса. Одд.