AppEngine DB通过电子邮件地址获取用户

时间:2011-03-04 08:02:39

标签: google-app-engine xmpp

我有一个简单的appengine应用程序,它在数据存储区中保存一些数据,其中一个字段是从登录用户创建的UserProperty。

我需要能够在用户发送XMPP消息时获取该数据,我有来自XMPP发件人的电子邮件地址但是当我尝试查询数据存储区中的对象时,我得不到返回的结果。 代码如下:

class Users(db.Model):
user = db.UserProperty()
accesstoken = db.StringProperty()
refreshtoken = db.StringProperty()
expires = db.IntegerProperty()
created = db.DateTimeProperty(auto_now_add=True)



class XmppHandler(webapp.RequestHandler):
def post(self):
    message = xmpp.Message(self.request.POST)
    rcpt = self.request.get('to').split("@")[0]
    orig = self.request.get('from').split("/")[0]
    text = self.request.get('body')
    query = Users.all()
    query.filter("user =", orig)
    r = query.get()
    authheader = "OAuth " + r.accesstoken

1 个答案:

答案 0 :(得分:1)

解决它,创建我用过的用户对象

 u = users.User(email=orig)

然后我可以按该用户对象进行过滤:

class XmppHandler(webapp.RequestHandler):
    def post(self):
        message = xmpp.Message(self.request.POST)
        rcpt = self.request.get('to').split("@")[0]
        orig = self.request.get('from').split("/")[0]
        text = self.request.get('body')
        u = users.User(email=orig)
        query = Users.all()
        query.filter("user =", u)
        r = query.get()
        authheader = "OAuth " + r.accesstoken