2010-12-04 54 views
1

我試圖做一個函數來檢查用戶是否已經登錄。我已經將這個函數放在mainpage類之外,並且它不會給出任何錯誤,直到我嘗試使用它爲止在MainPage類中獲得def(self)。功能如下:在Google App Engine中使用自制函數

def LoginCheck(): 
username = self.request.cookies.get('username') 
password = self.request.cookies.get('password') 
if username and password: 
    checkq = db.GqlQuery("SELECT * FROM Users WHERE username = :1 AND password = :2", username, password) 
    checkresult = checkq.get() 
    if checkresult is None: 
     self.redirect("/wrong") 
else: 
    self.redirect("/wrong2") 

,當我嘗試使用它,它返回:

line 14, in LoginCheck 
    username = self.request.cookies.get('username') 
NameError: global name 'self' is not defined 

我在做什麼錯?

回答

5

你必須在你的函數定義中加上「self」。見section 9.3.2 of python's tutorial

def LoginCheck(self): 
    username = self.request.cookies.get('username') 
    password = self.request.cookies.get('password') 
    if username and password: 
     checkq = db.GqlQuery("SELECT * FROM Users WHERE username = :1 AND password = :2", username, password) 
     checkresult = checkq.get() 
     if checkresult is None: 
      self.redirect("/wrong") 
    else: 
     self.redirect("/wrong2") 
+1

工作,謝謝。 – Kraffs 2010-12-04 07:42:52