通过App Engine数据存储区中的用户电子邮件过滤记录?

时间:2013-04-12 06:55:53

标签: google-app-engine

我在app引擎上托管了一个应用。它有一些字段以及UserProperty(),如下所示:

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

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

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

哪个不行。请帮忙。

1 个答案:

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