0

我正在尝试查询数据库以验证用户名是否已存在。

模型定义为:

    class UserAccounts(db.Model):
        username = db.StringProperty(required=True)
        password = db.StringProperty(required=True)
        email = db.StringProperty()

我从注册表单中获取用户名,并按如下方式查询用户名:

    username = self.request.get('username')
    ...
    query = db.GqlQuery("SELECT * FROM UserAccounts WHERE username=:1", username).get()

我正在尝试比较是否query == username总是失败。经过调查,我发现查询对象只是返回一个内存地址而不是存储在该位置的字符串<main.UserAccounts object at 0x10433b990>,我不知道为什么。在同一个应用程序中,我有另一个模型,我正在查询它并使用循环来遍历查询对象并检索项目,并且工作正常。我正在使用 Python 2.7 和 GAE SDK 1.8。任何帮助,将不胜感激。

4

1 回答 1

2

它不是返回内存地址,而是返回对象,并且您正在显示其默认表示。您可以使用通常的点表示法访问其字段,也可以定义一种__unicode__方法来定义默认字符串表示。

于 2013-05-09T06:24:06.363 回答