0

我有一个应用程序引擎上托管的应用程序。它具有一些字段以及 UserProperty(),如下所示:

class Post(db.Model):
    title = db.StringProperty(required=True)
    created_by = db.UserProperty(required=True)
    ...#some other fields

我正在尝试按 created_by 字段过滤记录,以便该应用程序将显示由登录用户创建的记录。我试过了:

p = Post.all()
p.filter('created_by =', users.get_current_user())

这是行不通的。请帮忙。

4

1 回答 1

1

如果您没有为您的登录用户提供单独的模型,您应该在帖子中存储user_id而不是email,因为前者更独特。

只需在Post

class Post(db.Model):
  title = db.StringProperty(required=True)
  created_by = db.UserProperty(required=True)
  user_id = db.StringProperty(required=True)
  ...

Post创建时做这样的事情:

post_db = Post(title='Hello world', 
               created_by=users.get_current_user(), 
               user_id=users.get_current_user().user_id())

现在,如果您想显示登录用户发布的所有帖子,您应该:

p = Post.all()
p.filter('user_id =', users.get_current_user().user_id())
于 2013-04-12T08:41:12.003 回答