这是这个问题的后续行动:
How do I correctly reference Users in GQL queries on App Engine?
在我的应用中,我有一个照片db.Model,其中每张照片都有一个UserProperty。我想显示一个用户列表,点击用户将显示所有用户的照片。
在创建指向用户照片页面的链接时引用用户的最佳方法是什么?
我找到了两个选项,都有它们的缺点。
有更好的方法吗?目前,我将用户和user_id()存储在Photo模型上,通过链接中传递的user_id进行GQL搜索,然后从Photo模型上的UserProperty引用用户。
答案 0 :(得分:3)
使用user_id
。除非你想获得他们的电子邮件地址和/或昵称,否则“查找”用户并不是真正有意义的操作。您应该有一个用户表,用于存储User
对象,由user_id
键入,以及您需要的任何其他特定于站点的信息(例如,首选项,个人资料信息)。
答案 1 :(得分:2)
我认为最好的方法是将user_id作为key_name传递并使用get_or_insert()
import models
from google.appengine.ext import db
from google.appengine.api import users
class Photo( db.Model ):
owner = db.UserProperty()
title = db.StringProperty()
photo = Photo(key_name=users.get_current_user().user_id())
photo.owner=users.get_current_user()
photo.title= 'hai'
photo.put()
user_id = users.get_current_user().user_id()
photo = Photo.get_or_insert(user_id)