2011-04-06 72 views
2

我有一個實體類:的AppEngine模型濾波問題

class User(db.Model): 
    local = db.TextProperty(required=True) 
    jid = db.TextProperty(required=True) 

代碼我檢查用戶是否存在後來:

def parseMessageFromJid(self, message, mesFrom) : 
     #user = User.all().filter(' jid', mesFrom.lower().strip()).get() 
     user = db.GqlQuery("SELECT * FROM User " + 
       "WHERE jid = :1", 
       mesFrom.lower().strip()).get() 
    if user is None : 
     if message.body.strip().lower().find("register") != 0 : 
     message.reply(HELP_MSG) 
     elif message.body.strip().lower().find("register") == 0 : 
     uname = message.body.strip().replace("register ", "", 1).replace(" ", "") + "@mybot.com" 
     user = User(jid=mesFrom,local=uname) 
     user.put() 
     message.reply("Ok. You are now registered.") 
    else : 
     # User registered, proceed 
     self.send_to_bots(message, user.local) 

我試驗了兩種方法:GQL和評論碼。兩種方法都返回None,雖然用戶在那裏:我可以在我的控制檯中看到它,當我做User.all()時,它在那裏。我在這裏錯過了什麼?

回答

3

TextProperty未被索引。 使用StringProperty

+0

是的,就是這樣。謝謝。 – folone 2011-04-06 10:20:16