Python 谷歌应用引擎:用户API行为异常
我认为我使用的用户API不正确:Python 谷歌应用引擎:用户API行为异常,python,django,google-app-engine,Python,Django,Google App Engine,我认为我使用的用户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
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>
看起来我可以通过在函数中将实例变量引用为
self.var\u name
,但从不在类级别声明它们来获得实例变量。奇怪。您正在存储用户的结果。在名为user
的变量中获取
,但是您的if
检查self.user
的值,该值不是同一个变量
使用相同的变量名,一切都可以 您正在存储
用户的结果。在名为user
的变量中获取\u current\u user()
,但是您的if
会检查self.user
的值,该值不是同一个变量
使用相同的变量名,一切都可以 这实际上是GAE还是开发服务器?这是在我的机器上的开发服务器上运行的。您需要使用firebug或其他开发控制台来查看单击“注销”时发生的情况。它应该将您重定向到/_ah/…,它应该发送一个Set Cookie头来清除Cookie,然后将您重定向回/@stefanw,即使其中一个是在类级别声明的,另一个是在函数中声明的?如果您在类级别声明它,它将在服务器启动时设置,我猜。这实际上是一个GAE还是开发服务器?这是在我机器上的开发服务器上运行的。您需要使用firebug或其他开发控制台来查看单击“注销”时发生的情况。它应该将您重定向到/_ah/…,它应该发送一个Set Cookie头来清除Cookie,然后将您重定向回/@stefanw,即使其中一个是在类级别声明的,另一个是在函数中声明的?如果您在类级别声明它,我想它将在服务器启动时设置。抱歉,看起来我最初没有包含足够的代码<代码>自我。正在从函数中检查用户,而
用户
存储在类级别。抱歉,看起来我最初没有包含足够的代码self.user
是从函数内部检查的,而user
则存储在类级别。
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('/')})