代码之家  ›  专栏  ›  技术社区  ›  fmsf

gql如何按用户属性选择

  •  1
  • fmsf  · 技术社区  · 15 年前

    嘿,我有这个代码,但它不起作用,因为它需要一个字符串。我怎样才能让它工作?

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

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

    我昨天已经开始使用Appengine数据库了,所以请注意:)

    3 回复  |  直到 15 年前
        1
  •  2
  •   Adam Crossland    15 年前
    query = GqlQuery("SELECT * FROM Atable WHERE owner = :1", users.get_current_user())
    
        2
  •  3
  •   Thierry Lam    15 年前

    您可以尝试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())
    
        3
  •  0
  •   Sologoub    15 年前

    如果您只需要为该用户获取一些数据,那么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)