GQL如何按用户属性选择

1 投票
3 回答
763 浏览
提问于 2025-04-15 20:53

嘿,我有这段代码,但它不工作,因为它需要一个字符串。请问我该怎么做才能让它正常运行呢?

class Atable(BaseModel):
    owner = db.UserProperty()
        (...)

--------- // --------------
query = "SELECT * FROM Atable WHERE owner=", users.get_current_user()
results = db.GqlQuery(query)

我该怎么修复这个搜索呢?谢谢你 :)

我昨天才开始使用appengine数据库,所以请多多包涵哦 :)

3 个回答

0

如果你只是想获取某个用户的一些数据,使用Python的查询方式可能会更简单。

比如在你的类Something(db.Model)里,你可以这样定义:

@staticmethod
def get_something_by_user(user):

        query = db.Query(Something).filter('users =', user)
        result = query.fetch(limit=1000)

        return result

然后你可以通过下面的方式来调用它:

user = users.GetCurrentUser()
results = Something.get_something_by_user(user)
3

你可以试试用GQL的方式:

results = db.GqlQuery("SELECT * FROM Atable WHERE owner = :1", users.get_current_user().key())

或者用Python查询的方式:

query = db.Query(Atable)
results = query.filter('owner =', users.get_current_user())
2

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,不知道该怎么解决。比如,有人可能在使用某个特定的功能时,发现它并没有按照预期的方式工作。这个时候,查看相关的讨论或者问答网站,比如StackOverflow,就能帮助我们找到解决方案。

在这些讨论中,其他程序员会分享他们的经验和解决方法,甚至可能会提供一些代码示例,帮助我们更好地理解问题所在。通过这些交流,我们可以学习到很多实用的技巧和知识,避免走弯路。

总之,遇到问题时,不要害怕寻求帮助,利用好网络上的资源,可以让我们的编程之路更加顺畅。

query = GqlQuery("SELECT * FROM Atable WHERE owner = :1", users.get_current_user())

撰写回答