簡體   English   中英

Google App Engine:用戶API行為異常

[英]Google App Engine: Users API acting oddly

我認為我使用的用戶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>

有時它起作用,有時卻不起作用。 我將連續十次單擊“注銷”鏈接,然后重新加載頁面,它將重定向到'/'頁面。 然后,神秘地,我將登出的其中一次。 基本上以相同的方式登錄失敗。 這里發生了什么?

解決 -此方法有效:

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它們稱為self.var_name來擁有實例變量,但是永遠不要在類級別上聲明它們。 奇。

您正在將users.get_current_user()的結果存儲在名為user的變量中,但隨后您if檢查self.user的值,該值不是同一變量。

使用相同的變量名,都應該沒問題!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM