Appengine模型过滤问题

时间:2011-04-06 09:54:35

标签: python google-app-engine model filter

我有一个实体类:

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()时它就在那里。我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

TextProperty未编入索引。 使用StringProperty