2010-12-04 14 views
1

ユーザーがログインしているかどうかをチェックする関数を作成しようとしています。私はmainpageクラスの外に関数を配置しました。 MainPageクラス内のdef get(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