在Google App Engine NDB域实体中将Webapp2 Auth用户对象存储为参考时,试图找出最佳实践。
我可以想到的3种方式
class MyEntity(ndb.Model):
users = ndb.UserProperty(repeated=True)
要么
class MyEntity(ndb.Model):
users = ndb.StringProperty(repeated=True)
我将在其中存储来自webapp2 User对象的用户ID的位置
user.get_id()
要么
class MyEntity(ndb.Model):
users = ndb.KeyProperty(repeated=True)
我将在其中存储来自webapp2 User对象的用户密钥的位置
user.key
我不确定这里的最佳做法是什么?特别是,存储user_id与密钥有什么好处吗?假设UserProperty是旧的处理方式?
最佳答案
避免使用UserProperty,而是存储ID。
直接从源头...
# google/appengine/ext/ndb/model.py:1711
class UserProperty(Property):
"""A Property whose value is a User object.
Note: this exists for backwards compatibility with existing
datastore schemas only; we do not recommend storing User objects
directly in the datastore, but instead recommend storing the
user.user_id() value.
"""
关于python - 在Google App Engine中存储用户对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15345502/