GQL如何通过UserProperty进行选择

时间:2010-03-26 17:08:34

标签: python django google-app-engine

嘿,我有这段代码,但它没有用,因为它需要一个字符串。我怎样才能使它发挥作用?

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

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

如何修复该搜索? 谢谢:))

我昨天开始使用appengine数据库,所以要温柔:)

3 个答案:

答案 0 :(得分:3)

您可以尝试GQL方式:

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

或Python Query方式:

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

答案 1 :(得分:2)

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

答案 2 :(得分: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)